42 #define DEFAULT_PATH_PERSISTENT_MO "config/"
43 #define VARIABLE_INDEX_LENGTH 0
45 #define DEFAULT_ROW_CREATION_TIMEOUT 300
48 #define VMODE_DEFAULT 1
49 #define VMODE_LOCKED 2
51 #define LEAF_VALUE_INITIALIZED 1
52 #define LEAF_VALUE_SET 2
54 #ifdef AGENTPP_NAMESPACE
186 virtual void init(
NS_SNMP SnmpSyntax*,
int);
210 virtual bool serialize(
char*&,
int&);
223 virtual bool deserialize(
char*,
int&);
232 virtual NS_SNMP SmiUINT32 get_syntax()
const;
240 virtual Vbx get_value()
const;
248 virtual int get_value(
NS_SNMP SnmpSyntax& s)
const
256 virtual int get_value(
int& i)
const
264 virtual int get_value(
long& i)
const
273 virtual int get_value(
unsigned long& i)
const
281 virtual int get_value(
char* c)
const
289 virtual void set_value(
const NS_SNMP SnmpSyntax&);
299 virtual void set_value(
const unsigned long);
309 virtual int set_value(
const Vbx&);
315 virtual void replace_value(
NS_SNMP SnmpSyntax* s);
339 virtual void get_request(
Request*,
int);
347 virtual void get_next_request(
Request*,
int);
356 virtual int commit_set_request(
Request*,
int);
366 virtual int prepare_set_request(
Request*,
int&);
375 virtual int undo_set_request(
Request*,
int&);
383 virtual void cleanup_set_request(
Request*,
int&);
403 virtual int set(
const Vbx& vb);
482 Oidx get_oid()
const;
513 void set_syntax(
NS_SNMP SmiUINT32);
547 #define rowNotInService 2
548 #define rowNotReady 3
549 #define rowCreateAndGo 4
550 #define rowCreateAndWait 5
605 virtual bool value_ok(
const Vbx&);
618 virtual bool transition_ok(
const Vbx&);
639 virtual bool check_state_change(
const Vbx&,
Request* req=0);
648 virtual int set(
const Vbx&);
676 virtual int prepare_set_request(
Request*,
int&);
696 #if !defined (AGENTPP_DECL_TEMPL_LIST_MIBLEAF)
697 #define AGENTPP_DECL_TEMPL_LIST_MIBLEAF
700 #if !defined (AGENTPP_DECL_TEMPL_ORDEREDLIST_MIBLEAF)
701 #define AGENTPP_DECL_TEMPL_ORDEREDLIST_MIBLEAF
704 #if !defined (AGENTPP_DECL_TEMPL_ORDEREDARRAY_MIBLEAF)
705 #define AGENTPP_DECL_TEMPL_ORDEREDARRAY_MIBLEAF
797 int size() {
return row.size(); }
825 void replace_element(
unsigned int,
MibLeaf*);
869 bool contains(
const Oidx&)
const;
879 int index_of(
const Oidx&)
const;
902 int index_of_upper(
const Oidx&)
const;
912 int index_of_lower(
const Oidx&)
const;
923 virtual void set_index(
const Oidx& ind);
953 void get_vblist(
Vbx*,
int,
954 bool returnVolatileAsNull=
FALSE);
994 void set_reference_to_table(
MibTable*);
998 void set_reference_to_row();
1002 #ifdef USE_ARRAY_TEMPLATE
1075 int) {
return SNMP_ERROR_SUCCESS; }
1146 #if !defined (AGENTPP_DECL_TEMPL_LIST_MIBTABLE)
1147 #define AGENTPP_DECL_TEMPL_LIST_MIBTABLE
1150 #if !defined (AGENTPP_DECL_TEMPL_LIST_MIBTABLEROW)
1151 #define AGENTPP_DECL_TEMPL_LIST_MIBTABLEROW
1154 #if !defined (AGENTPP_DECL_TEMPL_LIST_MIBTABLEVOTER)
1155 #define AGENTPP_DECL_TEMPL_LIST_MIBTABLEVOTER
1158 #if !defined (AGENTPP_DECL_TEMPL_OIDLIST_MIBTABLEROW)
1159 #define AGENTPP_DECL_TEMPL_OIDLIST_MIBTABLEROW
1162 #if !defined (AGENTPP_DECL_TEMPL_ORDEREDLIST_MIBTABLEROW)
1163 #define AGENTPP_DECL_TEMPL_ORDEREDLIST_MIBTABLEROW
1263 virtual void add_col(
MibLeaf*);
1282 virtual void replace_col(
unsigned int,
MibLeaf*);
1291 virtual bool serialize(
char*&,
int&);
1304 virtual bool deserialize(
char*,
int&);
1349 virtual int set_value(
Request*,
int);
1358 virtual void get_request(
Request*,
int);
1366 virtual void get_next_request(
Request*,
int);
1376 virtual int commit_set_request(
Request*,
int);
1387 virtual int prepare_set_request(
Request*,
int&);
1397 virtual int undo_set_request(
Request*,
int&);
1410 virtual void cleanup_set_request(
Request*,
int&);
1421 virtual bool ready_for_service(
Vbx* pvbs,
int sz);
1455 virtual void remove_row(
const Oidx&);
1529 virtual Oidx get_next_avail_index()
const;
1557 virtual bool is_index_valid(
const Oidx&)
const;
1590 virtual void get_contents(
Vbx**&,
int&,
int&,
int =
rowActive);
1705 virtual void add_listener(
MibTable*);
1714 virtual void remove_listener(
MibTable*);
1753 bool has_listeners()
const
1754 {
return (listeners.size() > 0); }
1759 virtual void clear();
1845 virtual bool could_ever_be_managed(
const Oidx&,
int&);
1893 virtual int check_creation(
Request*,
int&);
1924 virtual void get_required_columns(
bool*,
Vbx* vbs = 0);
1957 void remove_unused_rows();
1968 bool check_index(
Oidx&,
unsigned long,
unsigned long)
const;
2018 if ((!my_table) || (!my_row)) {
2022 Oidx o(*my_table->key());
2024 o += my_row->get_index();
2074 virtual int notify(
const NS_SNMP OctetStr&,
const Oidx&,
2075 Vbx*,
int,
unsigned int=0) = 0;
2121 virtual int notify(
const NS_SNMP OctetStr&,
Vbx*,
int) = 0;
2269 #if !defined (AGENTPP_DECL_TEMPL_ARRAY_MIBCONFIGFORMAT)
2270 #define AGENTPP_DECL_TEMPL_ARRAY_MIBCONFIGFORMAT
2274 #if !defined (AGENTPP_DECL_TEMPL_OIDLIST_MIBCONTEXT)
2275 #define AGENTPP_DECL_TEMPL_OIDLIST_MIBCONTEXT
2279 #ifdef _PROXY_FORWARDER
2280 #if !defined (AGENTPP_DECL_TEMPL_OIDLIST_PROXYFORWARDER)
2281 #define AGENTPP_DECL_TEMPL_OIDLIST_PROXYFORWARDER
2288 #if defined(_USE_PROXY) && !defined(_PROXY_FORWARDER)
2317 #ifndef STATIC_REQUEST_LIST
2328 #ifndef STATIC_REQUEST_LIST
2331 static RequestList* get_request_list() {
return requestList; }
2338 virtual void process_request(
Request*);
2359 virtual int notify(
const NS_SNMP OctetStr&,
const Oidx&,
2360 Vbx*,
int,
unsigned int=0);
2387 {
return notificationSender; }
2394 virtual void cleanup();
2452 virtual void remove_context(
const NS_SNMP OctetStr&);
2470 virtual bool add_agent_caps(
const NS_SNMP OctetStr&,
2484 virtual void remove_agent_caps(
const NS_SNMP OctetStr&,
2513 virtual bool remove(
const Oidx&);
2543 virtual bool remove(
const NS_SNMP OctetStr&,
const Oidx&);
2558 virtual bool init();
2563 virtual void save_all();
2575 virtual bool save(
unsigned int,
const NS_SNMP OctetStr&);
2587 virtual bool load(
unsigned int,
const NS_SNMP OctetStr&);
2634 virtual NS_SNMP OctetStr get_persistent_objects_path()
const;
2645 virtual void set_persistent_objects_path(
const NS_SNMP OctetStr* str);
2656 bool is_persistency_activated()
const
2657 {
return (persistent_objects_path != 0); }
2691 #ifndef STATIC_REQUEST_LIST
2785 virtual int find_managing_object(
MibContext*,
2791 #ifdef _PROXY_FORWARDER
2803 bool register_proxy(ProxyForwarder*);
2813 void unregister_proxy(
const NS_SNMP OctetStr&,
2814 ProxyForwarder::pdu_type);
2823 void set_local_engine_id(
const NS_SNMP OctetStr& s) { myEngineID=s;}
2826 #ifdef AGENTPP_USE_THREAD_POOL
2839 void set_thread_pool(ThreadPool* pool);
2847 void delete_thread_pool()
2848 {
if (threadPool)
delete threadPool; threadPool = 0; }
2856 ThreadPool* get_thread_pool() {
return threadPool; }
2866 virtual void do_process_request(
Request*);
2875 virtual void process_set_request(
Request*);
2884 virtual int process_prepare_set_request(
Request*);
2893 virtual int process_commit_set_request(
Request*);
2902 virtual int process_undo_set_request(
Request*);
2909 virtual void process_cleanup_set_request(
Request*);
2916 virtual void process_get_bulk_request(
Request*);
2932 virtual int get_boot_counter(
const NS_SNMP OctetStr&,
unsigned int&);
2947 virtual int set_boot_counter(
const NS_SNMP OctetStr&,
unsigned int);
2977 {
return (configFormats.getNth(format-1)); }
2992 static bool set_exception_vb(
Request*,
int,
int);
2999 virtual bool process_request(
Request*,
int);
3010 virtual void finalize(
Request*);
3038 virtual int next_access_control(
Request*,
3042 #ifdef _PROXY_FORWARDER
3043 virtual void proxy_request(
Request*);
3057 NS_SNMP OctetStr bootCounterFile;
3058 #ifdef _PROXY_FORWARDER
3064 #ifdef AGENTPP_USE_THREAD_POOL
3065 ThreadPool* threadPool;
3071 void construct(
const NS_SNMP OctetStr& path);
3075 #ifndef AGENTPP_USE_THREAD_POOL
3076 #ifdef _WIN32THREADS
3087 mibLock.start_synch();
3094 mibLock.end_synch();
3098 #ifdef AGENTPP_NAMESPACE