00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00035 #ifndef OSC_ASSOCIATIVE_NAMESPACE_H
00036 #define OSC_ASSOCIATIVE_NAMESPACE_H
00037
00038 #include <map>
00039 #include <string>
00040 #include "OSCNamespace.h"
00041
00042 class OSCAssociativeNamespace : public OSCNamespace
00043 {
00044 protected:
00045 typedef std::map < std::string, OSCCallable*, std::less<std::string> > CallableMap;
00046
00047 private:
00048 CallableMap* myCallables;
00049
00050 protected:
00051 CallableMap* getCallables() { return this->myCallables; }
00052 void setCallables(CallableMap *cm) { this->myCallables = cm; }
00053
00054 public:
00055 OSCAssociativeNamespace();
00056 virtual ~OSCAssociativeNamespace();
00057
00058 virtual bool add(const std::string &address, OSCCallable *thingamabob);
00059 virtual bool remove(const std::string& address);
00060 virtual OSCCallable* find(const std::string& address);
00061
00062
00063 virtual bool dispatch(const std::string &address, const std::string& data, Transmit *const reply);
00064
00068 virtual std::vector<std::string> list(const std::string& basename);
00069 };
00070
00071 #endif