Files Classes Functions Hierarchy
00001 #ifndef VISOPERATOR_H 00002 #define VISOPERATOR_H 00003 00004 #include <vector> 00005 using namespace std; 00006 00007 #include <typedefs.h> 00008 #include <viscmd.h> 00009 #include <visenv.h> 00010 00011 class vispointxml; 00012 00018 class visoperator 00019 { 00020 public: 00021 00023 static void set(visenv& ve_); 00025 static void set(vispointxml& vp_); 00026 00028 static visenv* ve; 00030 static vispointxml* vp; 00031 00033 virtual stringc id() const = 0; 00034 00037 virtual void handlecommand(bool & matches, viscmd & c) = 0; 00038 00039 }; 00040 00046 class visdictionary : public visoperator 00047 { 00048 public: 00049 00051 stringc id() const 00052 { return "dictionary"; } 00053 00055 static vector< visoperator* > dictionary; 00056 00058 static void add(visoperator* x); 00059 00062 void handlecommand(bool & matches, viscmd & c); 00063 00065 static void process(vector<viscmd> &v); 00066 00068 static void build01(); 00069 }; 00070 00071 00072 00073 // TODO - extend for supporting classes that do not directly use inheritance 00074 // to implement visoperator. 00075 // ie wrapper for handle function to call arbitarily named member func. 00076 00077 #endif 00078 00079
1.5.8