SafeRange.h

Go to the documentation of this file.
00001 #ifndef __SAFERANGE_H__
00002 #define __SAFERANGE_H__
00003 
00004 namespace oasys {
00005 
00011 template<typename _Type>
00012 class SafeRange {
00013 public:
00018     struct Error {
00019         Error(size_t offset) : offset_(offset) {}
00020         size_t offset_;
00021     };
00022 
00023     SafeRange(_Type* a, size_t size)
00024         : array_(a), size_(size) {}
00025     
00026     _Type& operator[](size_t offset) {
00027         if (offset >= size_) {
00028             throw Error(offset);
00029         }
00030         
00031         return array_[offset];
00032     }
00033 
00034 private:
00035     _Type* array_;
00036     size_t size_;
00037 };
00038 
00039 } // namespace oasys
00040 
00041 #endif /* __SAFERANGE_H__ */

Generated on Fri Dec 22 14:48:00 2006 for DTN Reference Implementation by  doxygen 1.5.1