Atlas-C++
|
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-2005 Alistair 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 // Attribute name strings follow. 00202 // 00203 00204 extern const std::string SERIALNO_ATTR; 00205 extern const std::string REFNO_ATTR; 00206 extern const std::string FROM_ATTR; 00207 extern const std::string TO_ATTR; 00208 extern const std::string SECONDS_ATTR; 00209 extern const std::string FUTURE_SECONDS_ATTR; 00210 extern const std::string ARGS_ATTR; 00211 00212 // 00213 // Inlined member functions follow. 00214 // 00215 00216 const int SERIALNO_FLAG = 1 << 14; 00217 00218 void RootOperationData::setSerialno(long val) 00219 { 00220 attr_serialno = val; 00221 m_attrFlags |= SERIALNO_FLAG; 00222 } 00223 00224 const int REFNO_FLAG = 1 << 15; 00225 00226 void RootOperationData::setRefno(long val) 00227 { 00228 attr_refno = val; 00229 m_attrFlags |= REFNO_FLAG; 00230 } 00231 00232 const int FROM_FLAG = 1 << 16; 00233 00234 void RootOperationData::setFrom(const std::string& val) 00235 { 00236 attr_from = val; 00237 m_attrFlags |= FROM_FLAG; 00238 } 00239 00240 const int TO_FLAG = 1 << 17; 00241 00242 void RootOperationData::setTo(const std::string& val) 00243 { 00244 attr_to = val; 00245 m_attrFlags |= TO_FLAG; 00246 } 00247 00248 const int SECONDS_FLAG = 1 << 18; 00249 00250 void RootOperationData::setSeconds(double val) 00251 { 00252 attr_seconds = val; 00253 m_attrFlags |= SECONDS_FLAG; 00254 } 00255 00256 const int FUTURE_SECONDS_FLAG = 1 << 19; 00257 00258 void RootOperationData::setFutureSeconds(double val) 00259 { 00260 attr_future_seconds = val; 00261 m_attrFlags |= FUTURE_SECONDS_FLAG; 00262 } 00263 00264 const int ARGS_FLAG = 1 << 20; 00265 00266 void RootOperationData::setArgs(const std::vector<Root>& val) 00267 { 00268 attr_args = val; 00269 m_attrFlags |= ARGS_FLAG; 00270 } 00271 00272 void RootOperationData::setArgsAsList(const Atlas::Message::ListType& val) 00273 { 00274 m_attrFlags |= ARGS_FLAG; 00275 attr_args.resize(0); 00276 for(Message::ListType::const_iterator I = val.begin(); 00277 I != val.end(); 00278 I++) 00279 { 00280 if (I->isMap()) { 00281 attr_args.push_back(Factories::instance()->createObject(I->asMap())); 00282 } 00283 } 00284 } 00285 00286 template <class ObjectData> 00287 void RootOperationData::setArgs1(const SmartPtr<ObjectData>& val) 00288 { 00289 m_attrFlags |= ARGS_FLAG; 00290 if(attr_args.size()!=1) attr_args.resize(1); 00291 attr_args[0] = val; 00292 } 00293 00294 long RootOperationData::getSerialno() const 00295 { 00296 if(m_attrFlags & SERIALNO_FLAG) 00297 return attr_serialno; 00298 else 00299 return ((RootOperationData*)m_defaults)->attr_serialno; 00300 } 00301 00302 long& RootOperationData::modifySerialno() 00303 { 00304 if(!(m_attrFlags & SERIALNO_FLAG)) 00305 setSerialno(((RootOperationData*)m_defaults)->attr_serialno); 00306 return attr_serialno; 00307 } 00308 00309 long RootOperationData::getRefno() const 00310 { 00311 if(m_attrFlags & REFNO_FLAG) 00312 return attr_refno; 00313 else 00314 return ((RootOperationData*)m_defaults)->attr_refno; 00315 } 00316 00317 long& RootOperationData::modifyRefno() 00318 { 00319 if(!(m_attrFlags & REFNO_FLAG)) 00320 setRefno(((RootOperationData*)m_defaults)->attr_refno); 00321 return attr_refno; 00322 } 00323 00324 const std::string& RootOperationData::getFrom() const 00325 { 00326 if(m_attrFlags & FROM_FLAG) 00327 return attr_from; 00328 else 00329 return ((RootOperationData*)m_defaults)->attr_from; 00330 } 00331 00332 std::string& RootOperationData::modifyFrom() 00333 { 00334 if(!(m_attrFlags & FROM_FLAG)) 00335 setFrom(((RootOperationData*)m_defaults)->attr_from); 00336 return attr_from; 00337 } 00338 00339 const std::string& RootOperationData::getTo() const 00340 { 00341 if(m_attrFlags & TO_FLAG) 00342 return attr_to; 00343 else 00344 return ((RootOperationData*)m_defaults)->attr_to; 00345 } 00346 00347 std::string& RootOperationData::modifyTo() 00348 { 00349 if(!(m_attrFlags & TO_FLAG)) 00350 setTo(((RootOperationData*)m_defaults)->attr_to); 00351 return attr_to; 00352 } 00353 00354 double RootOperationData::getSeconds() const 00355 { 00356 if(m_attrFlags & SECONDS_FLAG) 00357 return attr_seconds; 00358 else 00359 return ((RootOperationData*)m_defaults)->attr_seconds; 00360 } 00361 00362 double& RootOperationData::modifySeconds() 00363 { 00364 if(!(m_attrFlags & SECONDS_FLAG)) 00365 setSeconds(((RootOperationData*)m_defaults)->attr_seconds); 00366 return attr_seconds; 00367 } 00368 00369 double RootOperationData::getFutureSeconds() const 00370 { 00371 if(m_attrFlags & FUTURE_SECONDS_FLAG) 00372 return attr_future_seconds; 00373 else 00374 return ((RootOperationData*)m_defaults)->attr_future_seconds; 00375 } 00376 00377 double& RootOperationData::modifyFutureSeconds() 00378 { 00379 if(!(m_attrFlags & FUTURE_SECONDS_FLAG)) 00380 setFutureSeconds(((RootOperationData*)m_defaults)->attr_future_seconds); 00381 return attr_future_seconds; 00382 } 00383 00384 const std::vector<Root>& RootOperationData::getArgs() const 00385 { 00386 if(m_attrFlags & ARGS_FLAG) 00387 return attr_args; 00388 else 00389 return ((RootOperationData*)m_defaults)->attr_args; 00390 } 00391 00392 std::vector<Root>& RootOperationData::modifyArgs() 00393 { 00394 if(!(m_attrFlags & ARGS_FLAG)) 00395 setArgs(((RootOperationData*)m_defaults)->attr_args); 00396 return attr_args; 00397 } 00398 00399 const Atlas::Message::ListType RootOperationData::getArgsAsList() const 00400 { 00401 const std::vector<Root>& args_in = getArgs(); 00402 Atlas::Message::ListType args_out; 00403 for(std::vector<Root>::const_iterator I = args_in.begin(); 00404 I != args_in.end(); 00405 I++) 00406 { 00407 args_out.push_back(Atlas::Message::MapType()); 00408 (*I)->addToMessage(args_out.back().asMap()); 00409 } 00410 return args_out; 00411 } 00412 00413 bool RootOperationData::isDefaultSerialno() const 00414 { 00415 return (m_attrFlags & SERIALNO_FLAG) == 0; 00416 } 00417 00418 bool RootOperationData::isDefaultRefno() const 00419 { 00420 return (m_attrFlags & REFNO_FLAG) == 0; 00421 } 00422 00423 bool RootOperationData::isDefaultFrom() const 00424 { 00425 return (m_attrFlags & FROM_FLAG) == 0; 00426 } 00427 00428 bool RootOperationData::isDefaultTo() const 00429 { 00430 return (m_attrFlags & TO_FLAG) == 0; 00431 } 00432 00433 bool RootOperationData::isDefaultSeconds() const 00434 { 00435 return (m_attrFlags & SECONDS_FLAG) == 0; 00436 } 00437 00438 bool RootOperationData::isDefaultFutureSeconds() const 00439 { 00440 return (m_attrFlags & FUTURE_SECONDS_FLAG) == 0; 00441 } 00442 00443 bool RootOperationData::isDefaultArgs() const 00444 { 00445 return (m_attrFlags & ARGS_FLAG) == 0; 00446 } 00447 00448 00449 } } } // namespace Atlas::Objects::Operation 00450 00451 #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.