21 #ifndef agentx_master_h_
22 #define agentx_master_h_
30 #include <agent_pp/mib.h>
31 #include <agent_pp/notification_originator.h>
37 #ifdef AGENTPP_NAMESPACE
53 { mib = m; task = t; timely = ti; }
73 { mib = m; peer = p; closePdu = c; }
93 { mib = m; task = t; }
124 #if !defined (AGENTXPP_DECL_TEMPL_LIST_THREAD)
125 #define AGENTXPP_DECL_TEMPL_LIST_THREAD
128 #if !defined (AGENTXPP_DECL_TEMPL_LIST_AGENTXREGENTRY)
129 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXREGENTRY
132 #if !defined (AGENTXPP_DECL_TEMPL_LIST_AGENTXINDEXDB)
133 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXINDEXDB
190 void set_session_admin_status_writable(
bool);
200 virtual MibEntry* add(MibEntry*);
218 virtual MibEntry* add(
const NS_SNMP OctetStr&, MibEntry*);
231 virtual void process_agentx();
266 virtual void add_get_subrequest(u_int,
unsigned long,
269 u_char,
const NS_SNMP OctetStr&,
281 virtual void add_set_subrequest(u_int,
unsigned long,
284 u_char,
const NS_SNMP OctetStr&);
294 virtual void close_session(u_int, u_char);
305 virtual void set_auto_context(
bool enabled)
306 { autoContext = enabled; }
327 virtual Oidx get_upper_session_boundary(
const NS_SNMP OctetStr&,
341 virtual void add_new_context(
const NS_SNMP OctetStr&);
364 virtual time_t timeout_requests(time_t);
372 virtual void process_set_request(Request*);
374 virtual void do_process_request(Request*);
383 virtual void finalize(Request*);
392 virtual void delete_request(Request* req)
393 {
if (req->trylock() != Synchronized::BUSY) { req->notify();
394 req->unlock(); } Mib::delete_request(req); }
405 virtual bool send_pending_ax(
unsigned long);
416 virtual bool cancel_pending_ax(
unsigned long);
424 virtual void process_ax_request(
AgentXPdu&);
425 virtual void process_ax_response(
AgentXPdu&,
bool);
426 virtual bool process_ax_search_response(
AgentXPdu&,
431 virtual void process_ax_set_response(
AgentXPdu&,
436 virtual bool process_ax_getbulk_response(
AgentXPdu&,
442 virtual void process_ax_open(
AgentXPdu&);
443 virtual void process_ax_registration(
AgentXPdu&);
444 virtual void process_ax_unregistration(
AgentXPdu&);
445 virtual void process_ax_notify(
AgentXPdu&);
446 virtual void process_ax_master_request(fd_set*,
int*);
447 virtual void process_ax_addagentcaps(
AgentXPdu&);
448 virtual void process_ax_removeagentcaps(
AgentXPdu&);
449 virtual void process_ax_indexallocate(
AgentXPdu&);
450 virtual void process_ax_indexdeallocate(
AgentXPdu&);
530 virtual void remove_entries(u_int, u_int);
551 virtual bool add_ax_agent_caps(
const NS_SNMP OctetStr&,
553 const NS_SNMP OctetStr&,
569 virtual void remove_ax_agent_caps(
const NS_SNMP OctetStr&,
581 void remove_indexes(u_int);
601 void close_all_sessions();
612 void dispatch_ax_response(
AgentXPdu&,
bool);
613 void dispatch_ax_unregistration(
AgentXPdu&);
614 void dispatch_ax_registration(
AgentXPdu&);
619 Synchronized registrationLock;
622 Synchronized indexLock;
624 ThreadPool* axThread;
625 QueuedThreadPool* axRegThread;
626 QueuedThreadPool* axBulkThread;
627 QueuedThreadPool* axSetThread;
669 #ifdef AGENTPP_NAMESPACE