00001 /* Open SoundControl kit in C++ */ 00002 /* Copyright (C) 2002-2004 libOSC++ contributors. See AUTHORS */ 00003 /* */ 00004 /* This library is free software; you can redistribute it and/or */ 00005 /* modify it under the terms of the GNU Lesser General Public */ 00006 /* License as published by the Free Software Foundation; either */ 00007 /* version 2.1 of the License, or (at your option) any later version. */ 00008 /* */ 00009 /* This library is distributed in the hope that it will be useful, */ 00010 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00011 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ 00012 /* Lesser General Public License for more details. */ 00013 /* */ 00014 /* You should have received a copy of the GNU Lesser General Public */ 00015 /* License along with this library; if not, write to the Free Software */ 00016 /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 00017 /* */ 00018 /* For questions regarding this program contact */ 00019 /* Daniel Holth <dholth@fastmail.fm> or visit */ 00020 /* http://wiretap.stetson.edu/ */ 00021 00039 #ifndef OSCNAMESPACE_H 00040 #define OSCNAMESPACE_H 00041 00042 #include <string> 00043 #include <vector> 00044 #include "OSCCallable.h" 00045 00046 class OSCNamespace 00047 { 00048 private: 00049 protected: 00050 public: 00051 virtual ~OSCNamespace(void) = 0; 00052 00055 virtual bool add(const std::string &address, OSCCallable *thingamabob) = 0; 00056 00058 virtual bool remove(const std::string &address) = 0; 00059 00062 virtual OSCCallable* find(const std::string& address) = 0; 00063 00065 virtual bool dispatch(const std::string &address, const std::string& data, Transmit *const reply) = 0; 00066 00069 virtual std::vector<std::string> list(const std::string& base) = 0; 00070 }; 00071 00072 #endif