00001 #ifndef Impala_Core_Column_InvalidColumn_h 00002 #define Impala_Core_Column_InvalidColumn_h 00003 00004 namespace Impala 00005 { 00006 namespace Core 00007 { 00008 namespace Column 00009 { 00010 00011 00016 class InvalidColumn 00017 { 00018 public: 00019 00020 typedef int ColElemType; 00021 00023 InvalidColumn() 00024 { 00025 mDummy = 0; 00026 } 00027 00029 InvalidColumn(int n) 00030 { 00031 mDummy = 0; 00032 } 00033 00035 InvalidColumn(const InvalidColumn& c) 00036 { 00037 mDummy = 0; 00038 } 00039 00041 bool 00042 Valid() const 00043 { 00044 return false; 00045 } 00046 00048 int 00049 Size() 00050 { 00051 return 0; 00052 } 00053 00055 int 00056 Capacity() 00057 { 00058 return 0; 00059 } 00060 00062 bool 00063 Reserve(int newCapacity, bool copyData) 00064 { 00065 ILOG_ERROR("[Reserve] Invalid call"); 00066 return false; 00067 } 00068 00070 int& 00071 operator[](int i) 00072 { 00073 ILOG_ERROR("[operator[]] Invalid call"); 00074 return mDummy; 00075 } 00076 00077 int& 00078 Elem(int i) 00079 { 00080 ILOG_ERROR("[Elem] Invalid call"); 00081 return mDummy; 00082 } 00083 00084 int 00085 Get(int i) const 00086 { 00087 //ILOG_ERROR("[Get] Invalid call"); 00088 return 0; 00089 } 00090 00091 void 00092 Set(int i, int e) 00093 { 00094 //ILOG_ERROR("[Set] Invalid call"); 00095 } 00096 00097 // direct access, use with care 00098 00099 int* 00100 GetData() 00101 { 00102 ILOG_ERROR("[GetData] Invalid call"); 00103 return 0; 00104 } 00105 00106 void 00107 SetData(int* data, int nrElem) 00108 { 00109 ILOG_ERROR("[SetData] Invalid call"); 00110 } 00111 00112 private: 00113 00114 int mDummy; 00115 00116 ILOG_VAR_DECL; 00117 }; 00118 00119 ILOG_VAR_INIT(InvalidColumn, Impala.Core.Column); 00120 00121 } // namespace Column 00122 } // namespace Core 00123 } // namespace Impala 00124 00125 #endif