# BaseRegion.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-libRTI
    00006 //
    00007 // CERTI-libRTI 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-libRTI 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: BaseRegion.hh,v 3.2 2007/06/22 08:51:36 erk Exp $
    00023 // ----------------------------------------------------------------------------
    00024
    00025 #ifndef CERTI_BASE_REGION_HH
    00026 #define CERTI_BASE_REGION_HH
    00027
    00028 #include "Extent.hh"
    00029 #include "Handled.hh"
    00030
    00031 #include <vector>
    00032
    00033 namespace certi {
    00034
    00035 typedef Handle RegionHandle ;
    00036
    00037 class CERTI_EXPORT BaseRegion : public Handled<RegionHandle>
    00038 {
    00039 public:
    00040     BaseRegion(RegionHandle);
    00041     virtual ~BaseRegion();
    00042
    00043     virtual ULong getRangeLowerBound(ExtentIndex, DimensionHandle) const
    00044         throw (ArrayIndexOutOfBounds);
    00045
    00046     virtual ULong getRangeUpperBound(ExtentIndex, DimensionHandle) const
    00047         throw (ArrayIndexOutOfBounds);
    00048
    00049     virtual void setRangeLowerBound(ExtentIndex, DimensionHandle, ULong)
    00050         throw (ArrayIndexOutOfBounds);
    00051
    00052     virtual void setRangeUpperBound(ExtentIndex, DimensionHandle, ULong)
    00053         throw (ArrayIndexOutOfBounds);
    00054
    00055     virtual ULong getNumberOfExtents() const
    00056         throw ();
    00057
    00058     virtual SpaceHandle getSpaceHandle() const
    00059         throw () = 0 ;
    00060
    00061     const std::vector<Extent> &getExtents() const ;
    00062     void replaceExtents(const std::vector<Extent> &) throw (InvalidExtents);
    00063     bool overlaps(const BaseRegion &region) const ;
    00064
    00065 protected:
    00066     void setExtents(const std::vector<Extent> &);
    00067
    00068     std::vector<Extent> extents ;
    00069 };
    00070
    00071 } // namespace certi
    00072
    00073 #endif // CERTI_BASE_REGION_HH