7 #include "uniconfdaemonconn.h"
8 #include "uniconfdaemon.h"
15 UniConfDaemonConn::UniConfDaemonConn(
WvStream *_s,
const UniConf &_root)
26 UniConfDaemonConn::~UniConfDaemonConn()
40 void UniConfDaemonConn::addcallback()
42 root.
add_callback(
this, wv::bind(&UniConfDaemonConn::deltacallback,
this,
47 void UniConfDaemonConn::delcallback()
71 do_invalid(command_string);
80 do_malformed(command);
87 do_malformed(command);
94 do_malformed(command);
101 do_malformed(command);
103 do_subtree(arg1, arg2.
num() == 1);
108 do_malformed(command);
110 do_haschildren(arg1);
130 do_invalid(command_string);
146 UniClientConn::cmdinfos[c].name));
150 void UniConfDaemonConn::do_noop()
162 void UniConfDaemonConn::do_get(
const UniConfKey &key)
175 root[key].
setme(value);
179 void UniConfDaemonConn::do_remove(
const UniConfKey &_key)
181 int notifications_sent = 0;
182 bool single_key =
true;
186 for (
int n = strkey.len()-1; n > 0; n--)
188 if (strkey.
edit()[n] ==
'/')
189 strkey.
edit()[n] =
' ';
204 for (it.rewind(); it.next(); )
207 WvString sect_name = getdirname(it->fullkey());
208 root[it->fullkey()].
remove();
210 if (sect_name ==
".")
211 sect_name = WvString::null;
213 if (!root[sect_name].haschildren())
217 if (++notifications_sent > CONTINUE_SELECT_AT)
219 notifications_sent = 0;
232 void UniConfDaemonConn::do_subtree(
const UniConfKey &key,
bool recursive)
234 static int niceness = 0;
242 for (it.rewind(); it.next(); )
250 if (++niceness > CONTINUE_SELECT_AT)
260 for (it.rewind(); it.next(); )
277 void UniConfDaemonConn::do_haschildren(
const UniConfKey &key)
285 void UniConfDaemonConn::do_commit()
292 void UniConfDaemonConn::do_refresh()
301 void UniConfDaemonConn::do_quit()
308 void UniConfDaemonConn::do_help()
310 for (
int i = 0; i < UniClientConn::NUM_COMMANDS; ++i)
311 writetext(UniClientConn::cmdinfos[i].description);