7 #ifndef __UNICALLBACKGEN_H
8 #define __UNICALLBACKGEN_H
12 #include "unitempgen.h"
17 UniCallbackGenGetCallback;
18 typedef wv::function<void(
const UniConfKey&, WvStringParm)>
19 UniCallbackGenSetCallback;
30 typedef std::map<UniConfKey, UniCallbackGenGetCallback> GetCallbackMap;
31 GetCallbackMap get_callbacks;
32 typedef std::map<UniConfKey, UniCallbackGenSetCallback> SetCallbackMap;
33 SetCallbackMap set_callbacks;
37 bool update_before_get;
38 bool update_after_set;
41 update_before_get(
false),
42 update_after_set(
true) {}
45 virtual void setgetcallback(
const UniConfKey &key,
46 UniCallbackGenGetCallback get_callback)
49 get_callbacks[key] = get_callback;
51 get_callbacks.erase(key);
53 virtual void setsetcallback(
const UniConfKey &key,
54 UniCallbackGenSetCallback set_callback)
57 set_callbacks[key] = set_callback;
59 set_callbacks.erase(key);
63 WvStringParm value = WvString::null)
65 GetCallbackMap::iterator it = get_callbacks.find(key);
66 if (it != get_callbacks.end())
75 if (update_before_get) update(key);
81 SetCallbackMap::iterator it = set_callbacks.find(key);
82 if (it != set_callbacks.end())
83 it->second(key, value);
91 #endif // __UNICALLBACKGEN_H