# 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 $