00001 /* 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * Manages a UniConf daemon session. 00006 */ 00007 #ifndef __UNICONFDAEMONCONN_H 00008 #define __UNICONFDAEMONCONN_H 00009 00010 #include "uniconf.h" 00011 #include "uniclientconn.h" 00012 #include "unipermgen.h" 00013 #include "wvlog.h" 00014 #include "wvhashtable.h" 00015 00016 #define NUM_WATCHES 113 00017 00018 class UniConfDaemon; 00019 00020 /** 00021 * Retains all state and behavior related to a single UniConf daemon 00022 * connection. 00023 */ 00024 class UniConfDaemonConn : public UniClientConn 00025 { 00026 public: 00027 UniConfDaemonConn(WvStream *s, const UniConf &root); 00028 virtual ~UniConfDaemonConn() { close(); } 00029 00030 virtual void close(); 00031 00032 virtual void execute(); 00033 00034 protected: 00035 UniConf root; 00036 00037 virtual void do_malformed(); 00038 virtual void do_noop(); 00039 virtual void do_reply(WvStringParm reply); 00040 virtual void do_get(const UniConfKey &key); 00041 virtual void do_set(const UniConfKey &key, WvStringParm value); 00042 virtual void do_remove(const UniConfKey &key); 00043 virtual void do_subtree(const UniConfKey &key); 00044 virtual void do_haschildren(const UniConfKey &key); 00045 virtual void do_quit(); 00046 virtual void do_help(); 00047 00048 virtual void addcallback(); 00049 virtual void delcallback(); 00050 00051 void deltacallback(const UniConf &cfg, const UniConfKey &key); 00052 }; 00053 00054 #endif // __UNICONFDAEMONCONN_H