1 #ifndef SZA_UTIL_REGDESCRIPTION_H
2 #define SZA_UTIL_REGDESCRIPTION_H
17 #include "carma/szaarrayutils/szaregs.h"
26 class RegDescription {
32 RegDescription(
bool archivedOnly_=
false, ArrayMap* arrayMap=0);
37 RegDescription(
bool archivedOnly_, RegMapBlock* block);
42 RegDescription(RegDescription& desc);
43 RegDescription(
const RegDescription& desc);
48 void operator=(RegDescription& desc);
49 void operator=(
const RegDescription& desc);
54 virtual ~RegDescription();
71 void setTo(std::string regmap_name,
72 std::string board_name,
73 std::string block_name,
79 void setTo(std::string regmap_name,
80 std::string board_name,
81 std::string block_name,
84 CoordRange& coordRange);
89 void setCoord(Coord& coord);
94 void setOutputMode(RegOutputMode mode);
99 friend std::ostream& operator<<(std::ostream& os,
100 RegDescription& desc);
105 void output(OutputStream* stream, RegOutputMode mode);
110 bool rangeIsValid(CoordRange& range);
111 bool rangeIsValid(CoordRange* range);
117 unsigned nEl(CoordRange* range=0);
118 unsigned nByte(CoordRange* range=0);
124 unsigned fastestNel();
136 CoordRange* getRangePtr() {
151 std::vector<Range<unsigned> > getElementRanges(CoordRange* range=0);
157 std::vector<Range<unsigned> > getSlotRanges(CoordRange* range=0);
163 std::vector<Range<unsigned> > getByteRanges(CoordRange* range=0);
168 unsigned nSlot(CoordRange* range=0);
175 int startSlot(CoordRange* range=0);
176 int stopSlot(CoordRange* range=0);
206 std::string aspectName();
208 void setAspect(RegAspect aspect) {
216 std::string integName();
218 void setInteg(RegInteg integ) {
222 inline ArrayMap* arrayMap() {
226 RegMapBlock* block();
228 std::string blockName();
229 std::string boardName();
230 std::string regMapName();
245 const RegDescription& operator++();
251 unsigned currentSlot();
256 unsigned currentElement();
261 Coord currentCoord();
266 bool contains(RegDescription& desc);
268 inline long oldestVisible() {
269 return oldestVisible_;
272 inline bool isFirst() {
276 void setFirst(
bool first);
277 void setOldestVisible(
long oldest);
278 void resetOldestVisible();
279 void decreaseOldestVisible(
long oldest);
280 void increaseOldestVisible(
long oldest);
286 friend class RegParser;
290 ArrayMapBase arrayMapBase_;
298 RegOutputMode outputMode_;
337 unsigned nBytePerEl_;
342 RegAxisRange* axisRange_;
356 #endif // End #ifndef SZA_UTIL_REGDESCRIPTION_H
Tagged: Sat Oct 2 00:14:18 UTC 2004.
Tagged: Fri Sep 17 15:48:20 PDT 2004.
Tagged: Thu Jun 24 17:19:46 UTC 2004.
Tagged: Wed Oct 6 11:04:54 PDT 2004.
Tagged: Fri Sep 17 15:51:07 PDT 2004.