00001 /* 00002 Copyright 1996-2000 00003 Simon Whiteside 00004 00005 * $Id: skExecutable.h-source.html,v 1.1 2001/03/05 16:22:45 sdw Exp $ 00006 */ 00007 00008 #ifndef skEXECUTABLE_H 00009 #define skEXECUTABLE_H 00010 00011 #include "skString.h" 00012 00013 class skRValueArray; 00014 class skRValue; 00015 00016 00017 00018 /* 00019 * this constant is for undefined type primitive objects 00020 */ 00021 const int UNDEFINED_TYPE=0; 00022 /* 00023 * this constant is should be used for the type of any user-defined primitive objects 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 getValue(const skString& field_name,const skString& attribute,skRValue& value); 00090 virtual bool method(const skString& method_name,skRValueArray& arguments,skRValue& return_value); 00094 virtual bool equals(skExecutable * other_object) const; 00095 private: 00099 skExecutable(const skExecutable& other); 00103 skExecutable& operator=(const skExecutable& other); 00104 }; 00105 00106 // Some help-defines for method, getValue and setValue 00107 00108 #define IS_METHOD(s,m) (s==m) 00109 #define IS_GETVALUE(s,v) (s==v) 00110 #define IS_SETVALUE(s,v) (s==v) 00111 00112 00113 #endif