# DeclarationManagement.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: DeclarationManagement.hh,v 3.10 2008/11/21 13:41:52 approx Exp $
    00022 // ----------------------------------------------------------------------------
    00023
    00024 #ifndef _CERTI_RTIA_DM
    00025 #define _CERTI_RTIA_DM
    00026
    00027 #include "FederationManagement.hh"
    00028 #include "Communications.hh"
    00029 #include "Files.hh"
    00030 #include "certi.hh"
    00031 #include "RootObject.hh"
    00032 #include "PrettyDebug.hh"
    00033
    00034 namespace certi {
    00035 namespace rtia {
    00036
    00037 // Prototypes de classes existantes
    00038 class Communications ;
    00039 class Queues ;
    00040 class FederationManagement ;
    00041
    00042 // Classe de gestion des declarations(publications et subscriptions).
    00043 class DeclarationManagement
    00044 {
    00045 public:
    00046     DeclarationManagement(Communications*, FederationManagement*, RootObject*);
    00047     ~DeclarationManagement();
    00048
    00049     void publishObjectClass(ObjectClassHandle theClassHandle,
    00050                             std::vector <AttributeHandle> &attribArray,
    00051                             UShort attribArraySize,
    00052                             TypeException &e);
    00053
    00054     void unpublishObjectClass(ObjectClassHandle theClassHandle,
    00055                               TypeException &e);
    00056
    00057     void publishInteractionClass(InteractionClassHandle theInteractionHandle,
    00058                                  TypeException &e);
    00059
    00060     void unpublishInteractionClass(InteractionClassHandle theInteractionHandle,
    00061                                    TypeException &e);
    00062
    00063     void subscribeObjectClassAttribute(ObjectClassHandle theClassHandle,
    00064                                        std::vector <AttributeHandle> &attribArray,
    00065                                        UShort attribArraySize,
    00066                                        TypeException &e);
    00067
    00068     void unsubscribeObjectClassAttribute(ObjectClassHandle theClassHandle,
    00069                                          TypeException &e);
    00070
    00071     void subscribeInteractionClass(InteractionClassHandle theClassHandle,
    00072                                    TypeException &e);
    00073
    00074     void unsubscribeInteractionClass(InteractionClassHandle theClassHandle,
    00075                                      TypeException &e);
    00076
    00087     void setClassRelevanceAdvisorySwitch(bool state,
    00088                                          TypeException &e);
    00089
    00090     // 5.10
    00091     void startRegistrationForObjectClass(ObjectClassHandle theClass,
    00092                                          TypeException &e);
    00093
    00094     // 5.11
    00095     void stopRegistrationForObjectClass(ObjectClassHandle theClass,
    00096                                         TypeException &e);
    00097
    00108     void setInteractionRelevanceAdvisorySwitch(bool state,
    00109                                                TypeException &e);
    00110
    00111     // 5.12
    00112     void turnInteractionsOn(InteractionClassHandle theHandle,
    00113                             TypeException &e);
    00114
    00115     // 5.13
    00116     void turnInteractionsOff(InteractionClassHandle theHandle,
    00117                              TypeException &e);
    00118
    00119 protected:
    00120     Communications *comm ;
    00121     Queues *queues ;
    00122     FederationManagement *fm ;
    00123     RootObject *rootObject ;
    00124 };
    00125
    00126 }} // namespace certi/rtia
    00127
    00128 #endif // _CERTI_RTIA_DM
    00129
    00130 // $Id: DeclarationManagement.hh,v 3.10 2008/11/21 13:41:52 approx Exp $