Tarfact.cpp
上传用户:czjinwang
上传日期:2007-01-12
资源大小:2484k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. /*============================================================================
  2.    Copyright (c) 1996
  3.   Hewlett-Packard Company
  4.   ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
  5.   Permission to use, copy, modify, distribute and/or sell this software 
  6.   and/or its documentation is hereby granted without fee. User agrees 
  7.   to display the above copyright notice and this license notice in all 
  8.   copies of the software and any documentation of the software. User 
  9.   agrees to assume all liability for the use of the software; Hewlett-Packard 
  10.   makes no representations about the suitability of this software for any 
  11.   purpose. It is provided "AS-IS without warranty of any kind,either express 
  12.   or implied. User hereby grants a royalty-free license to any and all 
  13.   derivatives based upon this software code base. 
  14. =============================================================================*/
  15. #include "tarfact.h"
  16. #include "browser.h"
  17. //---------------------------------------------------------------
  18. // SNMP++ Target Factory
  19. // target factory returns an abstract target for a given
  20. // key
  21. // Note! A NMS platform will have its own target factory
  22. // which integrates with its own config database
  23. SnmpTarget * target_factory( char *key)
  24. {
  25.    CString filename;
  26.    filename = theApp.GetProfileString( BROWSER_VALUE,DB_NAME,DEF_DB_NAME);
  27.    // create a target class
  28.    Db target_db;
  29.    TargetDb_Rec db_rec;
  30.    target_db.set_attributtes( filename, sizeof( TargetDb_Rec));
  31.    // read the record
  32.    strcpy( db_rec.key, key);
  33.    if ( target_db.read( &db_rec) == DB_OK)
  34.    {
  35.        CTarget *snmptarget;
  36.        snmptarget = new CTarget( (GenAddress) key);
  37.        snmptarget->set_readcommunity( db_rec.read_community);
  38.        snmptarget->set_writecommunity( db_rec.write_community);
  39.        snmptarget->set_timeout( db_rec.timeout);
  40.        snmptarget->set_retry( db_rec.retries);
  41.    snmptarget->set_version(  (db_rec.snmp_type == SNMPV1)? version1: version2c );
  42.        return ( snmptarget);
  43.    }
  44.    else
  45.    return NULL;
  46. };