#ifndef _HTTP_SYMBOL_HPP_ #define _HTTP_SYMBOL_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif class Symbol { public: enum SymbolType{AssignedSymbol,ConstantSymbol,SystemSymbol, CommandSymbol,UserSymbol,UnknownSymbol}; Symbol(void); Symbol(const Symbol &someSymbol); Symbol(const String &symbolString,int identifier,SymbolType symbolType); virtual ~Symbol(); Symbol &operator=(const Symbol &someSymbol); int operator==(const Symbol &someSymbol)const; int operator==(const String &symbolString)const; String symbolName(void)const; void symbolName(const String &symbolName); int identifier(void)const; void identifier(int identifier); SymbolType symbolType(void)const; void symbolType(SymbolType symbolType); void symbolValue(double symbolValue); double symbolValue(void)const; private: String mSymbolName; int mIdentifier; SymbolType mSymbolType; double mSymbolValue; }; inline Symbol::Symbol(void) : mIdentifier(0), mSymbolType(UnknownSymbol), mSymbolValue(0.00) { } inline Symbol::Symbol(const Symbol &someSymbol) { *this=someSymbol; } inline Symbol::Symbol(const String &symbolString,int identifier,SymbolType symbolType) : mSymbolName(symbolString), mSymbolType(symbolType), mIdentifier(identifier) { } inline Symbol::~Symbol() { } inline int Symbol::operator==(const Symbol &someSymbol)const { return (mSymbolName==someSymbol.mSymbolName); } inline int Symbol::operator==(const String &symbolName)const { return (mSymbolName==symbolName); } inline Symbol &Symbol::operator=(const Symbol &someSymbol) { symbolName(someSymbol.symbolName()); identifier(someSymbol.identifier()); symbolType(someSymbol.symbolType()); symbolValue(someSymbol.symbolValue()); return *this; } inline String Symbol::symbolName(void)const { return mSymbolName; } inline void Symbol::symbolName(const String &symbolName) { mSymbolName=symbolName; } inline Symbol::SymbolType Symbol::symbolType(void)const { return mSymbolType; } inline void Symbol::symbolType(SymbolType symbolType) { mSymbolType=symbolType; } inline int Symbol::identifier(void)const { return mIdentifier; } inline void Symbol::identifier(int identifier) { mIdentifier=identifier; } inline void Symbol::symbolValue(double symbolValue) { mSymbolValue=symbolValue; } inline double Symbol::symbolValue(void)const { return mSymbolValue; } #endif