OwnershipManagement.hh

Go to the documentation of this file.
00001 // ----------------------------------------------------------------------------
00002 // CERTI - HLA RunTime Infrastructure
00003 // Copyright (C) 2002, 2003  ONERA
00004 //
00005 // This file is part of CERTI
00006 //
00007 // CERTI is free software ; you can redistribute it and/or modify
00008 // it under the terms of the GNU General Public License as published by
00009 // the Free Software Foundation ; either version 2 of the License, or
00010 // (at your option) any later version.
00011 //
00012 // CERTI is distributed in the hope that it will be useful,
00013 // but WITHOUT ANY WARRANTY ; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00015 // GNU General Public License for more details.
00016 //
00017 // You should have received a copy of the GNU General Public License
00018 // along with this program ; if not, write to the Free Software
00019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00020 //
00021 // $Id: OwnershipManagement.hh,v 3.8 2008/06/10 13:41:44 rousse Exp $
00022 // ----------------------------------------------------------------------------
00023 
00024 #ifndef _CERTI_RTIA_OWM
00025 #define _CERTI_RTIA_OWM
00026 
00027 #include "certi.hh"
00028 #include "FederationManagement.hh"
00029 #include "Communications.hh"
00030 #include "Files.hh"
00031 #include "RootObject.hh"
00032 
00033 namespace certi {
00034 namespace rtia {
00035 
00036 // Prototypes de classes existantes
00037 class Communications ;
00038 class Queues ;
00039 class FederationManagement ;
00040 
00042 class OwnershipManagement
00043 {
00044 public:
00045     OwnershipManagement(Communications *GC,
00046                         FederationManagement *GF);
00047 
00048     ~OwnershipManagement();
00049 
00050     // Ownership Management services
00051     const char *
00052     attributeOwnedByFederate(ObjectHandle theObject,
00053                              AttributeHandle theAttribute,
00054                              TypeException &e);
00055 
00056     void
00057     queryAttributeOwnership(ObjectHandle theObject,
00058                             AttributeHandle theAttribute,
00059                             TypeException &e);
00060 
00061     void
00062     informAttributeOwnership(ObjectHandle theObject,
00063                              AttributeHandle theAttribute,
00064                              FederateHandle theOwner,
00065                              TypeException &e);
00066 
00067     void
00068     attributeIsNotOwned(ObjectHandle theObject,
00069                         AttributeHandle theAttribute,
00070                         FederateHandle theOwner,
00071                         TypeException &e);
00072 
00073     void
00074     negotiatedAttributeOwnershipDivestiture(ObjectHandle theObject,
00075                                             std::vector <AttributeHandle> &attribArray,
00076                                             UShort attribArraySize,
00077                                             std::string theTag,
00078                                             TypeException &e);
00079     void
00080     cancelnegotiatedAttributeOwnershipDivestiture(ObjectHandle theObject,
00081                                                   std::vector <AttributeHandle> &,
00082                                                   UShort attribArraySize,
00083                                                   TypeException &e);
00084 
00085     void
00086     attributeOwnershipAcquisitionIfAvailable(ObjectHandle theObject,
00087                                              std::vector <AttributeHandle> &attribArray,
00088                                              UShort attribArraySize,
00089                                              TypeException &e);
00090 
00091     void
00092     cancelattributeOwnershipAcquisition(ObjectHandle theObject,
00093                                         std::vector <AttributeHandle> &attribArray,
00094                                         UShort attribArraySize,
00095                                         TypeException &e);
00096 
00097     void
00098     attributeOwnershipAcquisitionNotification(ObjectHandle theObject,
00099                                               std::vector <AttributeHandle> &attribArray,
00100                                               UShort attribArraySize,
00101                                               FederateHandle theOwner,
00102                                               TypeException &e);
00103     void
00104     attributeOwnershipUnavailable(ObjectHandle theObject,
00105                                   std::vector <AttributeHandle> &attribArray,
00106                                   UShort attribArraySize,
00107                                   FederateHandle theOwner,
00108                                   TypeException &e);
00109 
00110     void
00111     requestAttributeOwnershipAssumption(ObjectHandle theObject,
00112                                         std::vector <AttributeHandle> &attribArray,
00113                                         UShort attribArraySize,
00114                                         FederateHandle theOwner,
00115                                         std::string theTag,
00116                                         TypeException &e);
00117 
00118     void
00119     unconditionalAttributeOwnershipDivestiture(ObjectHandle theObject,
00120                                                std::vector <AttributeHandle> &attribArray,
00121                                                UShort attribArraySize,
00122                                                TypeException &e);
00123 
00124     void
00125     attributeOwnershipAcquisition(ObjectHandle theObject,
00126                                   std::vector <AttributeHandle> &attribArray,
00127                                   UShort attribArraySize,
00128                                   std::string theTag,
00129                                   TypeException &e);
00130 
00131     void
00132     requestAttributeOwnershipRelease(ObjectHandle theObject,
00133                                      std::vector <AttributeHandle> &attribArray,
00134                                      UShort attribArraySize,
00135                                      std::string theTag,
00136                                      TypeException &e);
00137 
00138     void
00139     attributeOwnershipDivestitureNotification(ObjectHandle theObject,
00140                                               std::vector <AttributeHandle> &attribArray,
00141                                               UShort attribArraySize,
00142                                               TypeException &e);
00143     AttributeHandleSet*
00144     attributeOwnershipRealeaseResponse(ObjectHandle theObject,
00145                                        std::vector <AttributeHandle> &attribArray,
00146                                        UShort attribArraySize,
00147                                        TypeException &e);
00148 
00149     void
00150     confirmAttributeOwnershipAcquisitionCancellation(ObjectHandle theObject,
00151                                                      std::vector <AttributeHandle> &,
00152                                                      UShort attribArraySize,
00153                                                      TypeException &e);
00154 
00155 protected:
00156     Communications *comm ;
00157     Queues *queues ;
00158     FederationManagement *fm ;
00159 };
00160 
00161 }} // namespace certi/rtia
00162 
00163 #endif // _CERTI_RTIA_OWM
00164 
00165 // $Id: OwnershipManagement.hh,v 3.8 2008/06/10 13:41:44 rousse Exp $

Generated on Thu Apr 30 15:53:49 2009 for CERTIDeveloperDocumentation by doxygen 1.5.5