00001 /************************************************************************/ 00002 /* This file is part of openMask(c) INRIA, CNRS, Universite de Rennes 1 */ 00003 /* 1993-2002, thereinafter the Software */ 00004 /* */ 00005 /* The Software has been developped within the Siames Project. */ 00006 /* INRIA, the University of Rennes 1 and CNRS jointly hold intellectual */ 00007 /* property rights */ 00008 /* */ 00009 /* The Software has been registered with the Agence pour la Protection */ 00010 /* des Programmes (APP) under registration number */ 00011 /* IDDN.FR.001.510008.00.S.P.2001.000.41200 */ 00012 /* */ 00013 /* This file may be distributed under the terms of the Q Public License */ 00014 /* version 1.0 as defined by Trolltech AS of Norway and appearing in */ 00015 /* the file LICENSE.QPL included in the packaging of this file. */ 00016 /* */ 00017 /* Licensees holding valid specific licenses issued by INRIA, CNRS or */ 00018 /* Universite Rennes 1 for the software may use this file in */ 00019 /* acordance with that specific license */ 00020 /************************************************************************/ 00021 00022 00023 #if !defined _CONTROLTAKEOVERPRM_H_ 00024 #define _CONTROLTAKEOVERPRM_H_ 00025 00026 #include "OMKInteraction.h" 00027 #include <vector> 00028 #include "OMKParametersAccessor.inl" 00029 #include <iostream> 00030 00031 //======================================================================== 00032 // AccessGroup 00033 //======================================================================== 00034 00035 namespace OMK 00036 { 00037 namespace Type 00038 { 00039 typedef int AccessLevel ; 00040 typedef std::map< Name, Type::AccessLevel > AccessGroupLevel ; 00041 } //namespace OMK 00042 } //namespace Type 00043 00044 //======================================================================== 00045 // AccessGroup 00046 //======================================================================== 00047 00048 namespace OMK 00049 { 00050 namespace Type 00051 { 00052 class AccessGroup ; 00053 00054 } //namespace Type 00055 } //namespace OMK 00056 namespace OMK 00057 { 00058 class OutgoingSynchronisationMessage ; 00059 class IncomingSynchronisationMessage ; 00060 class ConfigurationParameterDescriptor ; 00062 template<> 00063 OMKIII_API bool ParametersAccessor::getValue< OMK::Type::AccessGroup > 00064 ( const ConfigurationParameterDescriptor * nodeValue, 00065 OMK::Type::AccessGroup& value, 00066 std::string& errorStr ) ; 00067 } 00070 OMKIII_API std::ostream& operator << ( std::ostream& out, const OMK::Type::AccessGroup& a ) ; 00071 00074 OMKIII_API std::istream& operator >> ( std::istream& in, OMK::Type::AccessGroup& a ) ; 00075 00078 OMKIII_API OMK::OutgoingSynchronisationMessage& operator << 00079 ( OMK::OutgoingSynchronisationMessage& out, const OMK::Type::AccessGroup& a ) ; 00080 00083 OMKIII_API OMK::IncomingSynchronisationMessage& operator >> 00084 ( OMK::IncomingSynchronisationMessage& in, OMK::Type::AccessGroup& a ) ; 00085 00086 00087 namespace OMK 00088 { 00089 namespace Type 00090 { 00091 00150 class OMKIII_API AccessGroup 00151 { 00152 public: 00154 00155 00156 AccessGroup(); 00158 AccessGroup( const AccessGroup& ref ) ; 00160 AccessGroup( const Name& groupName, 00161 AccessLevel level ) ; 00163 virtual ~AccessGroup() ; 00165 AccessGroup& operator = ( const AccessGroup& ref ) ; 00167 00169 00170 public: 00172 Name _groupName ; 00174 AccessLevel _level ; 00176 protected: 00178 void _copy( const AccessGroup& q ) ; 00180 00181 00182 friend OMKIII_API bool operator != ( const AccessGroup& a0, const AccessGroup& a1 ) ; 00184 friend OMKIII_API bool operator == ( const AccessGroup& a0, const AccessGroup& a1 ) 00185 { return !( a0 != a1 ) ; } 00187 00189 friend class OMK::ParametersAccessor ; 00190 00192 00193 // stream operator for ostream. 00194 friend std::ostream& ::operator << ( std::ostream& out, const AccessGroup& a ) ; 00195 00196 // stream operator for istream. 00197 friend std::istream& ::operator >> ( std::istream& in, AccessGroup& a ) ; 00198 00199 // stream operator for OutgoingSynchronisationMessage. 00200 friend OMK::OutgoingSynchronisationMessage& ::operator << 00201 ( OMK::OutgoingSynchronisationMessage& out, const AccessGroup& a ) ; 00202 00203 // stream operator for IncomingSynchronisationMessage. 00204 friend OMK::IncomingSynchronisationMessage& ::operator >> 00205 ( OMK::IncomingSynchronisationMessage& in, AccessGroup& a ) ; 00207 } ; 00208 00209 //----------------------------------------------------------------------------- 00211 typedef OMK::Type::SimpleTypeT< AccessGroup > AccessGroupType ; 00212 00213 //----------------------------------------------------------------------------- 00214 00215 } //namespace OMK 00216 } //namespace Type 00217 00218 //======================================================================== 00220 template class OMKIII_API OMK::Type::SimpleTypeT< OMK::Type::AccessGroup > ; 00221 00222 00223 //======================================================================== 00224 // TwoIdsPrm 00225 //======================================================================== 00226 namespace OMK 00227 { 00228 namespace Type 00229 { 00230 class TwoIdsPrm ; 00231 00232 } //namespace OMK 00233 } //namespace Type 00234 namespace OMK 00235 { 00236 class OutgoingSynchronisationMessage ; 00237 class IncomingSynchronisationMessage ; 00238 class ConfigurationParameterDescriptor ; 00239 00241 template<> 00242 OMKIII_API bool ParametersAccessor::getValue< OMK::Type::TwoIdsPrm > 00243 ( const ConfigurationParameterDescriptor * nodeValue, 00244 OMK::Type::TwoIdsPrm& value, 00245 std::string& errorStr ) ; 00246 } 00249 OMKIII_API std::ostream& operator << ( std::ostream& out, const OMK::Type::TwoIdsPrm& t ) ; 00250 00253 OMKIII_API std::istream& operator >> ( std::istream& in, OMK::Type::TwoIdsPrm& t ) ; 00254 00257 OMKIII_API OMK::OutgoingSynchronisationMessage& operator << 00258 ( OMK::OutgoingSynchronisationMessage& out, const OMK::Type::TwoIdsPrm& t ) ; 00259 00262 OMKIII_API OMK::IncomingSynchronisationMessage& operator >> 00263 ( OMK::IncomingSynchronisationMessage& in, OMK::Type::TwoIdsPrm& t ) ; 00264 00265 namespace OMK 00266 { 00267 namespace Type 00268 { 00269 00328 class OMKIII_API TwoIdsPrm 00329 { 00330 public: 00332 00333 00334 TwoIdsPrm(); 00336 TwoIdsPrm( const TwoIdsPrm& ref ) ; 00338 TwoIdsPrm( OMK::Name id, 00339 OMK::Name secondId ) ; 00341 virtual ~TwoIdsPrm() ; 00343 TwoIdsPrm& operator = ( const TwoIdsPrm& ref ) ; 00345 00347 00348 public: 00350 OMK::Name _id ; 00352 OMK::Name _secondId ; 00354 protected: 00356 void _copy( const TwoIdsPrm& q ) ; 00358 00359 00360 friend OMKIII_API bool operator != ( const TwoIdsPrm& t0, const TwoIdsPrm& t1 ) ; 00362 friend OMKIII_API bool operator == ( const TwoIdsPrm& t0, const TwoIdsPrm& t1 ) 00363 { return !( t0 != t1 ) ; } 00365 00367 friend class OMK::ParametersAccessor ; 00368 00370 00371 // stream operator for ostream. 00372 friend std::ostream& ::operator << ( std::ostream& out, const TwoIdsPrm& t ) ; 00373 00374 // stream operator for istream. 00375 friend std::istream& ::operator >> ( std::istream& in, TwoIdsPrm& t ) ; 00376 00377 // stream operator for OutgoingSynchronisationMessage. 00378 friend OMK::OutgoingSynchronisationMessage& ::operator << 00379 ( OMK::OutgoingSynchronisationMessage& out, const TwoIdsPrm& t ) ; 00380 00381 // stream operator for IncomingSynchronisationMessage. 00382 friend OMK::IncomingSynchronisationMessage& ::operator >> 00383 ( OMK::IncomingSynchronisationMessage& in, TwoIdsPrm& t ) ; 00385 } ; 00386 00387 //----------------------------------------------------------------------------- 00389 typedef OMK::Type::SimpleTypeT< TwoIdsPrm > TwoIdsPrmType ; 00390 00391 //----------------------------------------------------------------------------- 00392 00393 } //namespace OMK 00394 } //namespace Type 00395 00396 //======================================================================== 00398 template class OMKIII_API OMK::Type::SimpleTypeT< OMK::Type::TwoIdsPrm > ; 00399 00400 00401 //======================================================================== 00402 // ControlTakeOverPrm 00403 //======================================================================== 00404 namespace OMK 00405 { 00406 namespace Type 00407 { 00408 class ControlTakeOverPrm ; 00409 00410 } //namespace OMK 00411 } //namespace Type 00412 namespace OMK 00413 { 00414 class OutgoingSynchronisationMessage ; 00415 class IncomingSynchronisationMessage ; 00416 class ConfigurationParameterDescriptor ; 00417 00419 template<> 00420 OMKIII_API bool ParametersAccessor::getValue< OMK::Type::ControlTakeOverPrm > 00421 ( const ConfigurationParameterDescriptor * nodeValue, 00422 OMK::Type::ControlTakeOverPrm& value, 00423 std::string& errorStr ) ; 00424 } //namespace OMK 00425 00428 OMKIII_API std::ostream& operator << ( std::ostream& out, const OMK::Type::ControlTakeOverPrm& c ) ; 00429 00432 OMKIII_API std::istream& operator >> ( std::istream& in, OMK::Type::ControlTakeOverPrm& c ) ; 00433 00436 OMKIII_API OMK::OutgoingSynchronisationMessage& operator << 00437 ( OMK::OutgoingSynchronisationMessage& out, const OMK::Type::ControlTakeOverPrm& c ) ; 00438 00441 OMKIII_API OMK::IncomingSynchronisationMessage& operator >> 00442 ( OMK::IncomingSynchronisationMessage& in, OMK::Type::ControlTakeOverPrm& c ) ; 00443 00444 namespace OMK 00445 { 00446 namespace Type 00447 { 00448 00507 class OMKIII_API ControlTakeOverPrm : public OMK::Type::TwoIdsPrm 00508 { 00509 public: 00511 00512 00513 ControlTakeOverPrm(); 00515 ControlTakeOverPrm( const ControlTakeOverPrm& ref ) ; 00517 ControlTakeOverPrm( const Name& id, 00518 const Name& secondId ) ; 00520 ControlTakeOverPrm( const Name& id, 00521 const Name& secondId, 00522 const AccessGroupLevel& accessGroup ) ; 00524 virtual ~ControlTakeOverPrm() ; 00526 ControlTakeOverPrm& operator = ( const ControlTakeOverPrm& ref ) ; 00528 00530 00531 public: 00533 AccessGroupLevel _accessGroup ; 00535 protected: 00537 void _copy( const ControlTakeOverPrm& q ) ; 00539 00540 00541 friend OMKIII_API bool operator != ( const ControlTakeOverPrm& c0, const ControlTakeOverPrm& c1 ) ; 00543 friend OMKIII_API bool operator == ( const ControlTakeOverPrm& c0, const ControlTakeOverPrm& c1 ) 00544 { return !( c0 != c1 ) ; } 00546 00548 friend class OMK::ParametersAccessor ; 00549 00551 00552 // stream operator for ostream. 00553 friend std::ostream& ::operator << ( std::ostream& out, const ControlTakeOverPrm& c ) ; 00554 00555 // stream operator for istream. 00556 friend std::istream& ::operator >> ( std::istream& in, ControlTakeOverPrm& c ) ; 00557 00558 // stream operator for OutgoingSynchronisationMessage. 00559 friend OMK::OutgoingSynchronisationMessage& ::operator << 00560 ( OMK::OutgoingSynchronisationMessage& out, const ControlTakeOverPrm& c ) ; 00561 00562 // stream operator for IncomingSynchronisationMessage. 00563 friend OMK::IncomingSynchronisationMessage& ::operator >> 00564 ( OMK::IncomingSynchronisationMessage& in, ControlTakeOverPrm& c ) ; 00566 } ; 00567 00568 //----------------------------------------------------------------------------- 00570 typedef OMK::Type::SimpleTypeT< ControlTakeOverPrm > ControlTakeOverPrmType ; 00571 00572 //----------------------------------------------------------------------------- 00573 00574 } //namespace OMK 00575 } //namespace Type 00576 00577 //======================================================================== 00579 template class OMKIII_API OMK::Type::SimpleTypeT< OMK::Type::ControlTakeOverPrm > ; 00580 00581 #endif // defined _CONTROLTAKEOVERPRM_H_
Documentation generated on Mon Jun 9 11:45:56 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |