00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef CERTI_FED_REGION_HH
00026 #define CERTI_FED_REGION_HH
00027
00028 #include "certi.hh"
00029 #include "BaseRegion.hh"
00030
00031 namespace certi {
00032
00033 class RoutingSpace ;
00034
00035 class CERTI_EXPORT FedRegion : public BaseRegion
00036 {
00037 public:
00038 FedRegion(RegionHandle, SpaceHandle, const std::vector<Extent> &);
00039 virtual ~FedRegion();
00040
00041 virtual ULong getRangeLowerBound(ExtentIndex, DimensionHandle) const
00042 throw (ArrayIndexOutOfBounds);
00043
00044 virtual ULong getRangeUpperBound(ExtentIndex, DimensionHandle) const
00045 throw (ArrayIndexOutOfBounds);
00046
00047 virtual void setRangeLowerBound(ExtentIndex, DimensionHandle, ULong)
00048 throw (ArrayIndexOutOfBounds);
00049
00050 virtual void setRangeUpperBound(ExtentIndex, DimensionHandle, ULong)
00051 throw (ArrayIndexOutOfBounds);
00052
00053 virtual SpaceHandle getSpaceHandle() const
00054 throw ();
00055
00056 virtual ULong getNumberOfExtents() const
00057 throw ();
00058
00059 virtual ULong getRangeLowerBoundNotificationLimit(ExtentIndex,
00060 DimensionHandle) const
00061 throw (ArrayIndexOutOfBounds);
00062
00063 virtual ULong getRangeUpperBoundNotificationLimit(ExtentIndex,
00064 DimensionHandle) const
00065 throw (ArrayIndexOutOfBounds);
00066
00067 void commit();
00068
00069 private:
00070 SpaceHandle space ;
00071 std::vector<Extent> coExtents ;
00072 };
00073
00074 }
00075
00076 #endif // CERTI_FED_REGION_HH
00077
00078