# DataDistribution.hh

Go to the documentation of this file.

    00001 // ----------------------------------------------------------------------------
    00002 // CERTI - HLA RunTime Infrastructure
    00003 // Copyright (C) 2002-2005  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: DataDistribution.hh,v 3.16 2008/06/10 13:41:44 rousse Exp $
    00022 // ----------------------------------------------------------------------------
    00023
    00024 #ifndef _CERTI_DATA_DISTRIBUTION
    00025 #define _CERTI_DATA_DISTRIBUTION
    00026
    00027 // Project
    00028 #include "Communications.hh"
    00029 #include "FederationManagement.hh"
    00030 #include "RootObject.hh"
    00031
    00032 namespace certi {
    00033 namespace rtia {
    00034
    00035 class DataDistribution
    00036 {
    00037 public:
    00038     DataDistribution(RootObject *, FederationManagement *, Communications *);
    00039
    00040     SpaceHandle getRoutingSpaceHandle(std::string) const ;
    00041
    00042     std::string getRoutingSpaceName(SpaceHandle) const ;
    00043
    00044     DimensionHandle getDimensionHandle(std::string, SpaceHandle) const
    00045         throw (SpaceNotDefined, NameNotFound);
    00046
    00047     std::string getDimensionName(DimensionHandle, SpaceHandle) const
    00048         throw (SpaceNotDefined, DimensionNotDefined);
    00049
    00050     SpaceHandle getAttributeSpace(AttributeHandle, ObjectClassHandle) const
    00051         throw (ObjectClassNotDefined, AttributeNotDefined);
    00052
    00053     SpaceHandle getInteractionSpace(InteractionClassHandle) const
    00054         throw (InteractionClassNotDefined);
    00055
    00056     long createRegion(SpaceHandle, unsigned long, TypeException &)
    00057         throw (SpaceNotDefined);
    00058
    00059     void modifyRegion(RegionHandle, const std::vector<Extent> &,
    00060               TypeException &);
    00061
    00062     void deleteRegion(long, TypeException &)
    00063         throw (RegionNotKnown, RegionInUse);
    00064
    00065     void associateRegion(ObjectHandle, RegionHandle, std::vector <AttributeHandle> &,
    00066              int, TypeException &)
    00067     throw (RegionNotKnown);
    00068
    00069     ObjectHandle registerObject(ObjectClassHandle, const std::string,
    00070                 const std::vector <AttributeHandle> &, int,
    00071                 const std::vector<RegionHandle>,
    00072                 TypeException &);
    00073
    00074     void unassociateRegion(ObjectHandle, RegionHandle, TypeException &e)
    00075     throw (ObjectNotKnown, InvalidRegionContext, RegionNotKnown);
    00076
    00077     void subscribe(ObjectClassHandle, RegionHandle, std::vector <AttributeHandle> &, int,
    00078            TypeException &)
    00079     throw (RegionNotKnown);
    00080
    00081     void unsubscribeAttributes(ObjectClassHandle, RegionHandle, TypeException &)
    00082     throw (RegionNotKnown);
    00083
    00084     void subscribeInteraction(InteractionClassHandle, RegionHandle,
    00085                   TypeException &)
    00086     throw (RegionNotKnown);
    00087
    00088     void unsubscribeInteraction(InteractionClassHandle, RegionHandle,
    00089                 TypeException &)
    00090     throw (RegionNotKnown);
    00091
    00092 private:
    00093     RootObject *rootObject ;
    00094     FederationManagement *fm ;
    00095     Communications *comm ;
    00096 };
    00097
    00098 }} // namespace certi/rtia
    00099
    00100 #endif // _CERTI_DATA_DISTRIBUTION
    00101
    00102 // $Id: DataDistribution.hh,v 3.16 2008/06/10 13:41:44 rousse Exp $