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 00031 #ifndef OSC_C_CALLABLE_H 00032 #define OSC_C_CALLABLE_H 00033 00034 #include "OSCCallable.h" 00035 #include "Transmit.h" 00036 #include <string> 00037 00038 #include "int64_t.h" 00039 00040 #include "OSC-c-types.h" 00041 #include "OSC-string-help.h" 00042 00043 00044 class OSCCCallable : public OSCCallable 00045 { 00046 00047 private: 00048 methodCallback myFunction; 00049 void *myContext; 00050 protected: 00051 methodCallback getFunction() { return this->myFunction; } 00052 void *getContext() { return this->myContext; } 00053 public: 00054 OSCCCallable() { this->setFunction(NULL, NULL); } 00055 00063 void setFunction(methodCallback function, void *context) 00064 { 00065 this->myFunction = function; 00066 this->myContext = context; 00067 } 00068 00069 virtual void call(const std::string& data, Transmit *const reply); 00070 }; 00071 00072 #endif 00073