00001 // This file may be redistributed and modified only under the terms of 00002 // the GNU Lesser General Public License (See COPYING for details). 00003 // Copyright 2000-2001 Stefanus Du Toit and Aloril. 00004 // Copyright 2001-2004 Al Riddoch. 00005 // Automatically generated using gen_cpp.py. 00006 00007 #ifndef ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H 00008 #define ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H 00009 00010 #include <Atlas/Objects/Root.h> 00011 #include <Atlas/Objects/SmartPtr.h> 00012 00013 #include <Atlas/Objects/objectFactory.h> 00014 00015 namespace Atlas { namespace Objects { namespace Operation { 00016 00027 class RootOperationData; 00028 typedef SmartPtr<RootOperationData> RootOperation; 00029 00030 static const int ROOT_OPERATION_NO = 9; 00031 00034 00040 class RootOperationData : public RootData 00041 { 00042 protected: 00044 RootOperationData(RootOperationData *defaults = NULL) : 00045 RootData((RootData*)defaults) 00046 { 00047 m_class_no = ROOT_OPERATION_NO; 00048 } 00050 virtual ~RootOperationData(); 00051 00052 public: 00054 virtual RootOperationData * copy() const; 00055 00057 virtual bool instanceOf(int classNo) const; 00058 00061 virtual int copyAttr(const std::string& name, Atlas::Message::Element & attr) const; 00063 virtual void setAttr(const std::string& name, 00064 const Atlas::Message::Element& attr); 00066 virtual void removeAttr(const std::string& name); 00067 00069 virtual void sendContents(Atlas::Bridge & b) const; 00070 00072 virtual void addToMessage(Atlas::Message::MapType &) const; 00073 00075 inline void setSerialno(long val); 00077 inline void setRefno(long val); 00079 inline void setFrom(const std::string& val); 00081 inline void setTo(const std::string& val); 00083 inline void setSeconds(double val); 00085 inline void setFutureSeconds(double val); 00087 inline void setArgs(const std::vector<Root>& val); 00089 inline void setArgsAsList(const Atlas::Message::ListType& val); 00091 template <class ObjectData> 00092 inline void setArgs1(const SmartPtr<ObjectData> & val); 00093 00095 inline long getSerialno() const; 00097 inline long& modifySerialno(); 00099 inline long getRefno() const; 00101 inline long& modifyRefno(); 00103 inline const std::string& getFrom() const; 00105 inline std::string& modifyFrom(); 00107 inline const std::string& getTo() const; 00109 inline std::string& modifyTo(); 00111 inline double getSeconds() const; 00113 inline double& modifySeconds(); 00115 inline double getFutureSeconds() const; 00117 inline double& modifyFutureSeconds(); 00119 inline const std::vector<Root>& getArgs() const; 00121 inline std::vector<Root>& modifyArgs(); 00123 inline const Atlas::Message::ListType getArgsAsList() const; 00124 00126 inline bool isDefaultSerialno() const; 00128 inline bool isDefaultRefno() const; 00130 inline bool isDefaultFrom() const; 00132 inline bool isDefaultTo() const; 00134 inline bool isDefaultSeconds() const; 00136 inline bool isDefaultFutureSeconds() const; 00138 inline bool isDefaultArgs() const; 00139 00140 protected: 00142 virtual int getAttrClass(const std::string& name)const; 00144 virtual int getAttrFlag(const std::string& name)const; 00146 long attr_serialno; 00148 long attr_refno; 00150 std::string attr_from; 00152 std::string attr_to; 00154 double attr_seconds; 00156 double attr_future_seconds; 00158 std::vector<Root> attr_args; 00159 00161 void sendSerialno(Atlas::Bridge&) const; 00163 void sendRefno(Atlas::Bridge&) const; 00165 void sendFrom(Atlas::Bridge&) const; 00167 void sendTo(Atlas::Bridge&) const; 00169 void sendSeconds(Atlas::Bridge&) const; 00171 void sendFutureSeconds(Atlas::Bridge&) const; 00173 void sendArgs(Atlas::Bridge&) const; 00174 00175 virtual void iterate(int& current_class, std::string& attr) const; 00176 00177 //freelist related things 00178 public: 00179 static RootOperationData *alloc(); 00180 virtual void free(); 00181 00186 virtual RootOperationData *getDefaultObject(); 00187 00192 static RootOperationData *getDefaultObjectInstance(); 00193 private: 00194 static RootOperationData *defaults_RootOperationData; 00195 static RootOperationData *begin_RootOperationData; 00196 00197 static std::map<std::string, int> * attr_flags_RootOperationData; 00198 }; 00199 00200 // 00201 // Inlined member functions follow. 00202 // 00203 00204 const int SERIALNO_FLAG = 1 << 14; 00205 void RootOperationData::setSerialno(long val) 00206 { 00207 attr_serialno = val; 00208 m_attrFlags |= SERIALNO_FLAG; 00209 } 00210 00211 const int REFNO_FLAG = 1 << 15; 00212 void RootOperationData::setRefno(long val) 00213 { 00214 attr_refno = val; 00215 m_attrFlags |= REFNO_FLAG; 00216 } 00217 00218 const int FROM_FLAG = 1 << 16; 00219 void RootOperationData::setFrom(const std::string& val) 00220 { 00221 attr_from = val; 00222 m_attrFlags |= FROM_FLAG; 00223 } 00224 00225 const int TO_FLAG = 1 << 17; 00226 void RootOperationData::setTo(const std::string& val) 00227 { 00228 attr_to = val; 00229 m_attrFlags |= TO_FLAG; 00230 } 00231 00232 const int SECONDS_FLAG = 1 << 18; 00233 void RootOperationData::setSeconds(double val) 00234 { 00235 attr_seconds = val; 00236 m_attrFlags |= SECONDS_FLAG; 00237 } 00238 00239 const int FUTURE_SECONDS_FLAG = 1 << 19; 00240 void RootOperationData::setFutureSeconds(double val) 00241 { 00242 attr_future_seconds = val; 00243 m_attrFlags |= FUTURE_SECONDS_FLAG; 00244 } 00245 00246 const int ARGS_FLAG = 1 << 20; 00247 void RootOperationData::setArgs(const std::vector<Root>& val) 00248 { 00249 attr_args = val; 00250 m_attrFlags |= ARGS_FLAG; 00251 } 00252 00253 void RootOperationData::setArgsAsList(const Atlas::Message::ListType& val) 00254 { 00255 m_attrFlags |= ARGS_FLAG; 00256 attr_args.resize(0); 00257 for(Message::ListType::const_iterator I = val.begin(); 00258 I != val.end(); 00259 I++) 00260 { 00261 if (I->isMap()) { 00262 attr_args.push_back(Factories::instance()->createObject(I->asMap())); 00263 } 00264 } 00265 } 00266 00267 template <class ObjectData> 00268 void RootOperationData::setArgs1(const SmartPtr<ObjectData>& val) 00269 { 00270 m_attrFlags |= ARGS_FLAG; 00271 if(attr_args.size()!=1) attr_args.resize(1); 00272 attr_args[0] = val; 00273 } 00274 00275 long RootOperationData::getSerialno() const 00276 { 00277 if(m_attrFlags & SERIALNO_FLAG) 00278 return attr_serialno; 00279 else 00280 return ((RootOperationData*)m_defaults)->attr_serialno; 00281 } 00282 00283 long& RootOperationData::modifySerialno() 00284 { 00285 if(!(m_attrFlags & SERIALNO_FLAG)) 00286 setSerialno(((RootOperationData*)m_defaults)->attr_serialno); 00287 return attr_serialno; 00288 } 00289 00290 long RootOperationData::getRefno() const 00291 { 00292 if(m_attrFlags & REFNO_FLAG) 00293 return attr_refno; 00294 else 00295 return ((RootOperationData*)m_defaults)->attr_refno; 00296 } 00297 00298 long& RootOperationData::modifyRefno() 00299 { 00300 if(!(m_attrFlags & REFNO_FLAG)) 00301 setRefno(((RootOperationData*)m_defaults)->attr_refno); 00302 return attr_refno; 00303 } 00304 00305 const std::string& RootOperationData::getFrom() const 00306 { 00307 if(m_attrFlags & FROM_FLAG) 00308 return attr_from; 00309 else 00310 return ((RootOperationData*)m_defaults)->attr_from; 00311 } 00312 00313 std::string& RootOperationData::modifyFrom() 00314 { 00315 if(!(m_attrFlags & FROM_FLAG)) 00316 setFrom(((RootOperationData*)m_defaults)->attr_from); 00317 return attr_from; 00318 } 00319 00320 const std::string& RootOperationData::getTo() const 00321 { 00322 if(m_attrFlags & TO_FLAG) 00323 return attr_to; 00324 else 00325 return ((RootOperationData*)m_defaults)->attr_to; 00326 } 00327 00328 std::string& RootOperationData::modifyTo() 00329 { 00330 if(!(m_attrFlags & TO_FLAG)) 00331 setTo(((RootOperationData*)m_defaults)->attr_to); 00332 return attr_to; 00333 } 00334 00335 double RootOperationData::getSeconds() const 00336 { 00337 if(m_attrFlags & SECONDS_FLAG) 00338 return attr_seconds; 00339 else 00340 return ((RootOperationData*)m_defaults)->attr_seconds; 00341 } 00342 00343 double& RootOperationData::modifySeconds() 00344 { 00345 if(!(m_attrFlags & SECONDS_FLAG)) 00346 setSeconds(((RootOperationData*)m_defaults)->attr_seconds); 00347 return attr_seconds; 00348 } 00349 00350 double RootOperationData::getFutureSeconds() const 00351 { 00352 if(m_attrFlags & FUTURE_SECONDS_FLAG) 00353 return attr_future_seconds; 00354 else 00355 return ((RootOperationData*)m_defaults)->attr_future_seconds; 00356 } 00357 00358 double& RootOperationData::modifyFutureSeconds() 00359 { 00360 if(!(m_attrFlags & FUTURE_SECONDS_FLAG)) 00361 setFutureSeconds(((RootOperationData*)m_defaults)->attr_future_seconds); 00362 return attr_future_seconds; 00363 } 00364 00365 const std::vector<Root>& RootOperationData::getArgs() const 00366 { 00367 if(m_attrFlags & ARGS_FLAG) 00368 return attr_args; 00369 else 00370 return ((RootOperationData*)m_defaults)->attr_args; 00371 } 00372 00373 std::vector<Root>& RootOperationData::modifyArgs() 00374 { 00375 if(!(m_attrFlags & ARGS_FLAG)) 00376 setArgs(((RootOperationData*)m_defaults)->attr_args); 00377 return attr_args; 00378 } 00379 00380 const Atlas::Message::ListType RootOperationData::getArgsAsList() const 00381 { 00382 const std::vector<Root>& args_in = getArgs(); 00383 Atlas::Message::ListType args_out; 00384 for(std::vector<Root>::const_iterator I = args_in.begin(); 00385 I != args_in.end(); 00386 I++) 00387 { 00388 args_out.push_back(Atlas::Message::MapType()); 00389 (*I)->addToMessage(args_out.back().asMap()); 00390 } 00391 return args_out; 00392 } 00393 00394 bool RootOperationData::isDefaultSerialno() const 00395 { 00396 return (m_attrFlags & SERIALNO_FLAG) == 0; 00397 } 00398 00399 bool RootOperationData::isDefaultRefno() const 00400 { 00401 return (m_attrFlags & REFNO_FLAG) == 0; 00402 } 00403 00404 bool RootOperationData::isDefaultFrom() const 00405 { 00406 return (m_attrFlags & FROM_FLAG) == 0; 00407 } 00408 00409 bool RootOperationData::isDefaultTo() const 00410 { 00411 return (m_attrFlags & TO_FLAG) == 0; 00412 } 00413 00414 bool RootOperationData::isDefaultSeconds() const 00415 { 00416 return (m_attrFlags & SECONDS_FLAG) == 0; 00417 } 00418 00419 bool RootOperationData::isDefaultFutureSeconds() const 00420 { 00421 return (m_attrFlags & FUTURE_SECONDS_FLAG) == 0; 00422 } 00423 00424 bool RootOperationData::isDefaultArgs() const 00425 { 00426 return (m_attrFlags & ARGS_FLAG) == 0; 00427 } 00428 00429 00430 } } } // namespace Atlas::Objects::Operation 00431 00432 #endif // ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H
Copyright 2000-2004 the respective authors.
This document can be licensed under the terms of the GNU Free Documentation License or the GNU General Public License and may be freely distributed under the terms given by one of these licenses.