00001 // ---------------------------------------------------------------------------- 00002 // CERTI - HLA RunTime Infrastructure 00003 // Copyright (C) 2003-2005 ONERA 00004 // 00005 // This file is part of CERTI-libCERTI 00006 // 00007 // CERTI-libCERTI is free software ; you can redistribute it and/or 00008 // modify it under the terms of the GNU Lesser General Public License 00009 // as published by the Free Software Foundation ; either version 2 of 00010 // the License, or (at your option) any later version. 00011 // 00012 // CERTI-libCERTI is distributed in the hope that it will be useful, but 00013 // WITHOUT ANY WARRANTY ; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 // Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with this program ; if not, write to the Free Software 00019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00020 // USA 00021 // 00022 // $Id: RoutingSpace.hh,v 3.10 2007/10/31 10:30:22 erk Exp $ 00023 // ---------------------------------------------------------------------------- 00024 00025 #ifndef _CERTI_ROUTING_SPACE 00026 #define _CERTI_ROUTING_SPACE 00027 00028 00029 // CERTI headers 00030 #include "Dimension.hh" 00031 #include "Handled.hh" 00032 #include "Extent.hh" 00033 #include "Named.hh" 00034 00035 // Standard headers 00036 #include <vector> 00037 #include <string> 00038 00039 namespace certi { 00040 00041 class CERTI_EXPORT RoutingSpace : public Handled<SpaceHandle>, public Named 00042 { 00043 public: 00047 RoutingSpace(); 00048 00052 ~RoutingSpace(); 00053 00059 DimensionHandle getDimensionHandle(std::string dimension_name) const throw (NameNotFound); 00060 00066 std::string getDimensionName(DimensionHandle dimension_handle) const 00067 throw (DimensionNotDefined); 00068 00073 size_t size() const ; 00074 00078 void display() const ; 00079 00085 void addDimension(const Dimension &d); 00086 00087 Extent createExtent() const ; 00088 00089 private: 00090 std::vector<Dimension> dimensions ; 00091 }; 00092 00093 } // namespace certi 00094 00095 #endif // _CERTI_ROUTING_SPACE 00096 00097 // $Id: RoutingSpace.hh,v 3.10 2007/10/31 10:30:22 erk Exp $ 00098