00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef OTFUNCTIONMANAGER_H
00024 #define OTFUNCTIONMANAGER_H
00025
00026
00027 #include "ot_lib.h"
00028
00029
00030
00031
00033
00034
00035
00036 class ot_functionManager : public ot_manager
00037 {
00038 private:
00039
00040 ot_interface *m_root;
00041
00042 ot_interfaceAttribute * getAttributeElement(const ot_path &aPath);
00043
00044
00045 public:
00046
00048 ot_functionManager(void);
00049
00051 ~ot_functionManager(void);
00052
00057 void callFunction(const ot_path &fPath,
00058 const ot_obj &input,
00059 auto_ptr<ot_obj> &output);
00060
00063 void dumpInterface(auto_ptr<ot_obj> &output);
00064
00066 void pingInterface(void);
00067
00072 void getAttribute(const ot_path &aPath,auto_ptr<ot_obj> &output);
00073
00078 void setAttribute(const ot_path &aPath,const ot_obj &newValue);
00079
00082 void addAttribute(const ot_path &ePath,const string &name,const ot_obj &o);
00083
00086 void removeElement(const ot_path &ePath);
00087
00090 void lockAttribute(const ot_path &aPath);
00091
00094 void unlockAttribute(const ot_path &aPath);
00095
00098 void setInterfaceAccess(const ot_path &iPath,OT_IE_ACCESS a);
00099
00102 OT_IE_STATUS getAttributeStatus(const ot_path &aPath);
00103
00107 void addInterface(const ot_path &iPath,OT_IE_ACCESS access=IE_PRIVATE);
00108
00111 void removeInterface(const ot_path &iPath);
00112
00116 void addFunction(const ot_path &iPath,ot_functionImplementation *fImpl,OT_IE_ACCESS a=IE_PRIVATE);
00117
00120 void removeFunction(const ot_path &iPath);
00121
00122
00123
00124 };
00125
00126 #endif