00001 00002 00003 00004 00005 00006
00007
00008 #ifndef skEXECUTABLE_H
00009 #define skEXECUTABLE_H
00010
00011 #include "skString.h"
00012
00013 class skRValueArray;
00014 class skRValue;
00015 class skExecutableIterator;
00016
00017
00018 00019 00020
00021 const int UNDEFINED_TYPE=0;
00022 00023 00024
00025 const int START_USER_TYPES=10;
00026
00030 class skExecutable
00031 {
00032 public:
00036 skExecutable();
00040 virtual ~skExecutable();
00041
00046 virtual int executableType() const;
00050 virtual int intValue() const;
00054 virtual bool boolValue() const;
00058 virtual Char charValue() const;
00062 virtual skString strValue() const;
00066 virtual float floatValue() const;
00074 virtual bool setValue(const skString& field_name,const skString& attribute,const skRValue& value);
00082 virtual bool setValueAt(const skRValue& array_index,const skString& attribute,const skRValue& value);
00090 virtual bool getValue(const skString& field_name,const skString& attribute,skRValue& value);
00098 virtual bool getValueAt(const skRValue& array_index,const skString& attribute,skRValue& value);
00106 virtual bool method(const skString& method_name,skRValueArray& arguments,skRValue& return_value);
00110 virtual bool equals(skExecutable * other_object) const;
00116 virtual skExecutableIterator * createIterator(const skString& qualifier);
00121 virtual skExecutableIterator * createIterator();
00122 private:
00126 skExecutable(const skExecutable& other);
00130 skExecutable& operator=(const skExecutable& other);
00131 };
00132
00133
00134
00135 #define IS_METHOD(s,m) (s==m)
00136 #define IS_GETVALUE(s,v) (s==v)
00137 #define IS_SETVALUE(s,v) (s==v)
00138
00139
00140 #endif