# RTIA.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: RTIA.hh,v 3.15 2008/10/10 14:04:48 gotthardp Exp $
    00022 // ----------------------------------------------------------------------------
    00023
    00024 #ifndef _CERTI_RTIA_HH
    00025 #define _CERTI_RTIA_HH
    00026
    00027 // Project
    00028 #include "Communications.hh"
    00029 #include "TimeManagement.hh"
    00030 #include "FederationManagement.hh"
    00031 #include "ObjectManagement.hh"
    00032 #include "OwnershipManagement.hh"
    00033 #include "DeclarationManagement.hh"
    00034 #include "DataDistribution.hh"
    00035 #include "Statistics.hh"
    00036
    00037 namespace certi {
    00038 namespace rtia {
    00039
    00040 class RTIA
    00041 {
    00042 public:
    00043     RTIA(int RTIA_port);
    00044     ~RTIA();
    00045
    00046     void execute();
    00047     void displayStatistics();
    00048
    00049 private:
    00050     RootObject *rootObject ;
    00051
    00052     FederationManagement *fm ;
    00053     TimeManagement *tm ;
    00054     Communications *comm ;
    00055     Queues *queues ;
    00056     ObjectManagement *om ;
    00057     OwnershipManagement *owm ;
    00058     DeclarationManagement *dm ;
    00059     DataDistribution *ddm ;
    00060     Statistics stat ;
    00061
    00062     void saveAndRestoreStatus(Message::Type type)
    00063         throw (SaveInProgress, RestoreInProgress);
    00064
    00065     void processNetworkMessage(NetworkMessage *);
    00066     void processFederateRequest(Message *);
    00067     void chooseFederateProcessing(Message *, Message &, TypeException &);
    00068     void processOngoingTick();
    00069 };
    00070
    00071 }} // namespace certi
    00072
    00073 #endif // _CERTI_RTIA_HH
    00074
    00075 // $Id: RTIA.hh,v 3.15 2008/10/10 14:04:48 gotthardp Exp $