CCAFFEINE
0.8.8
|
00001 #ifndef DefaultParameterPort_h_seen 00002 #define DefaultParameterPort_h_seen 00003 00004 #include <string> 00005 #include <vector> 00006 #include <stdexcept> 00010 namespace dpp { 00011 00012 class tvElement { 00013 private: 00014 std::string tabName; 00015 BaseParameter *bp; 00016 bool isString; 00017 public: 00018 ~tvElement() { 00019 tabName = "deleted"; 00020 bp = 0; 00021 } 00022 tvElement(std::string & s) 00023 : tabName(s), bp(0), isString(true) {} 00024 tvElement(BaseParameter *p) 00025 : tabName(""), bp(p), isString(false) {} 00026 std::string getN() { 00027 if (!isString) { 00028 throw std::logic_error("not tabname element"); 00029 } 00030 return tabName; 00031 } 00032 BaseParameter *getP() { 00033 if (isString) { 00034 throw std::logic_error("not parameter element"); 00035 } 00036 return bp; 00037 } 00038 }; // end tvElement class 00039 00040 } ENDSEMI // end namespace dpp 00041 00053 class DefaultParameterPort : public virtual ConfigurableParameterPort { 00054 00055 private: 00060 ::std::vector< ::std::vector< ::dpp::tvElement > > tabVector; 00061 ::std::vector< BaseParameter *> pVector; 00062 char *title; // assume to live in user space 00063 bool configured; 00064 int requestCount; 00065 ::std::vector< ParameterGetListener * > getListeners; 00066 ::std::vector< ParameterSetListener * > setListeners; 00067 00068 public: 00069 00070 DefaultParameterPort() ; 00071 virtual ~DefaultParameterPort() ; 00072 00074 virtual int setConfigurationString(char * fieldName, char *value); 00075 00076 00079 /*CFREE*/ virtual char *getConfigurationString(char *infix) ; 00080 /*CFREE*/ virtual char *getConfigurationString(char *infix, char *fieldName) ; 00081 00089 bool isFullyConfigured() ; 00090 00092 void clearRequests() ; 00093 00097 void setUpdater(ParameterGetListener *po); 00098 00099 void setUpdatedListener(ParameterSetListener *po); 00100 00104 void setBatchTitle(char *title_) ; 00105 00111 void setGroupName(char *name) ; 00112 00138 void addRequest(BaseParameter *p) ; 00139 00140 BaseParameter *getParameter(char *name); 00141 }; 00142 #endif //DefaultParameterPort_h_seen