diff options
Diffstat (limited to 'ACE/ASNMP/asnmp/target.h')
-rw-r--r-- | ACE/ASNMP/asnmp/target.h | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/ACE/ASNMP/asnmp/target.h b/ACE/ASNMP/asnmp/target.h deleted file mode 100644 index 084088e5f4f..00000000000 --- a/ACE/ASNMP/asnmp/target.h +++ /dev/null @@ -1,260 +0,0 @@ - - -#ifndef TARGET_ -#define TARGET_ -//============================================================================= -/** - * @file target.h - * - * $Id$ - * - * @brief - * - * @author Peter E Mellquist Michael R. MacFaden (ported to ACE) - */ -//============================================================================= - -/*=================================================================== - Copyright (c) 1996 - Hewlett-Packard Company - - ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS. - Permission to use, copy, modify, distribute and/or sell this software - and/or its documentation is hereby granted without fee. User agrees - to display the above copyright notice and this license notice in all - copies of the software and any documentation of the software. User - agrees to assume all liability for the use of the software; Hewlett-Packard - makes no representations about the suitability of this software for any - purpose. It is provided "AS-IS" without warranty of any kind,either express - or implied. User hereby grants a royalty-free license to any and all - derivatives based upon this software code base. -=====================================================================*/ - -//----[ includes ]------------------------------------------------ -#include "ace/INET_Addr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "asnmp/address.h" -#include "asnmp/oid.h" -#include "asnmp/octet.h" - -//----[ enumerated types for SNMP versions ]------------------------- -enum snmp_version { - version1, // 0 - version2c, // 1 (Cisco IOS does not have IOS v2c agent available yet) - version3 // 2 (IETF working on this version) -}; - -// targets contain the following default properties -enum ASNMP_Defs { - DEF_TIMEOUT = 1, // unit: seconds - DEF_RETRIES = 1, // no retry default - DEF_MAX_SNMP_PACKET = 1430, // maximum pdu len on the wire (eth mtu-ip hdr) - // split bigger pdus (not implemented yet) - DEF_AGENT_PORT = 161, // port # for SNMP agent - DEF_TRAP_PORT = 162, // port # for SNMP trap receiver - DEF_VERSION = version1, // default SNMP version - MAX_COMM_STR_LEN = 255, // max value this impl will accept from client - MAX_TARGET_STRING_REP = 2048 // max value this impl will accept from client -}; - -#define READ_COMM_STR "public" -#define WRITE_COMM_STR "private" - -// Abstract class used to provide a virtual interface into Targets -// -/** - * @class SnmpTarget - * - * @brief Abstract Base class SnmpTarget is used to Collect all transmission - * details to communicate with an SNMP - */ -class ASNMP_Export SnmpTarget -{ - public: - - /// allow destruction of derived classes - virtual ~SnmpTarget(); - - /// return validity of target - int valid() const; - - /// set the retry value - void set_retry( const int r); - - /// set the object's timeout (in seconds) - void set_timeout( const unsigned long t); - - /// set the instance version - void set_version( const snmp_version v); - - /// all classes constructed will have this write community string - void set_max_pdu_size(const unsigned long max_pdu_sz); - - /// change the "class" default default timeout (in seconds) - void set_default_timeout( const unsigned long t); - - /// change the default send retries - void set_default_retry( const int r); - - /// all classes constructed will have this write community string - void set_default_max_pdu_size(const unsigned long max_pdu_sz); - - /// change class default - void set_default_version( const snmp_version v); - - // *** get methods *** - - /// get the retry value - int get_default_retry() const; - - /// get the timeout (seconds) - unsigned long get_timeout() const; - - /// get instance max buffer size - unsigned long get_max_pdu_size() const; - - /// all classes constructed will have this write community string - void get_default_max_pdu_size(const unsigned long max_pdu_sz); - - /// get the version - snmp_version get_version() const; - - snmp_version get_default_version() const; - - /// return send retry number for this instancd - int get_retry() const; - - /** - * virtual clone operation for creating a new SnmpTarget from an existing - * SnmpTarget. The caller MUST use the delete operation on the return - * value when done. - */ - virtual SnmpTarget *clone() const = 0; - - /// manipulate the base part - friend bool operator==(const SnmpTarget& lhs, const SnmpTarget& rhs); - - SnmpTarget& operator=(const SnmpTarget& lhs); - - protected: - /// SnmpTarget(const SnmpTarget &); - SnmpTarget(); - - /// used by derived class instances - int validity_; - - /// instance value xmit timeout in milli secs - unsigned long timeout_; - - /// instance value number of retries - int retries_; - - /// size of pdu - unsigned max_pdu_size_; - - /// instance value the snmp version - snmp_version version_; - - // class wide default values - /// xmit timeout in secs - static unsigned long default_timeout_; - - /// number of retries - static int default_retries_; - - /// snmp protocol version - static unsigned long default_max_pdu_size_; - static snmp_version default_version_; -}; - -//----[ UdpTarget class ]---------------------------------------------- -// UDP/IP transport using "community string" based agents (targets) -// -/** - * @class UdpTarget - * - * @brief Concrete class UdpTarget contains all Details for communicating - * with a SNMPv1 agent over UDP/IPv4 transport - */ -class ASNMP_Export UdpTarget : public SnmpTarget -{ - public: - UdpTarget(); - - /** - * constructor with only address - * assumes default as public, public - * can be constructed with IP address object - */ - UdpTarget( const UdpAddress& udp); - - /// can be constructed with Udp address object TODO: merge addresses - UdpTarget( ACE_INET_Addr& ace_inet_addr); - - /// destructor - ~UdpTarget(); - - // ** set *** - - /// set the read community using an OctetStr - void set_read_community( const OctetStr& new_read_community); - - /// set the write community using an OctetStr - void set_write_community( const OctetStr& write_community); - - /// set the address - int set_address( UdpAddress &udp_address); - - // ** get *** - - /// get the read community as an Octet Str object - void get_read_community( OctetStr& read_community_oct) const; - - /// get the write community as an OctetStr - void get_write_community( OctetStr &write_community_oct) const; - - /// get the address - void get_address( UdpAddress& address) const; - - /// all classes constructed will have this read community string - void set_default_read_community(const OctetStr& rd_community); - - /// all classes constructed will have this write community string - void set_default_write_community(const OctetStr& wr_community); - - /// all classes constructed will have this read community string - void get_default_read_community(OctetStr& rd_community) const; - - /// all classes constructed will have this write community string - void get_default_write_community(OctetStr& wr_community) const; - - /// overloaded assignment - UdpTarget& operator=( const UdpTarget& target); - - /// compare two C targets - friend bool operator==( const UdpTarget &lhs, const UdpTarget &rhs); - - /// string representation of object - const char *to_string(); - - /// clone from existing UdpTarget - SnmpTarget *clone() const; - - protected: - static OctetStr default_rd_community_; - static OctetStr default_wr_community_; - OctetStr read_community_; - OctetStr write_community_; - UdpAddress udp_address_; - snmp_version version_; - - /// to_string() rep of data - char output_buffer_[MAX_TARGET_STRING_REP]; -}; - - -#endif //TARGET_ |