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 $

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