My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
AntNum.h
Go to the documentation of this file.
1 #ifndef GCP_UTIL_ANTNUM_H
2 #define GCP_UTIL_ANTNUM_H
3 
4 #define GCC3_2_2_SUCKS
5 
13 #include <iostream>
14 #include <sstream>
15 #include <string>
16 
17 namespace gcp {
18  namespace util {
19 
23  class AntNum {
24 
25  //------------------------------------------------------------
26  // Public members
27  //------------------------------------------------------------
28 
29  public:
30 
31  static const unsigned int NANT = 1;
32  static const unsigned int NBASE = (NANT*(NANT-1))/2;
33 
37  enum Id {
38  ANTNONE = 0, // Make these orthogonal bits, so we can OR them
39  // together, as below.
40  ANT0 = 1,
41  ANT1 = 2,
42  ANT2 = 4,
43  ANT3 = 8,
44  ANT4 = 16,
45  ANT5 = 32,
46  ANT6 = 64,
47  ANT7 = 128,
48  ANTMAX = ANT0, // This should always be set to the last valid antenna
49  ANTALL = ANT0
50  } id_;
51 
55  AntNum(Id id);
56 
62  AntNum(unsigned int);
63 
67  AntNum();
68 
74  AntNum(const AntNum& antNum);
75 
81  AntNum(AntNum* antNum);
82 
86  bool isValidSingleAnt();
87 
88  static bool isValidSingleAnt(Id antId);
89 
94  std::string getObjectName();
95 
100  std::string getEventChannelName();
101 
106  std::string getAntennaName();
107 
111  std::string getString();
112 
116  std::string getLoggerPrefix();
117 
125  unsigned int getDelayEngineIntId();
126 
134  unsigned int getIntId();
135 
140  Id getId();
141 
149  unsigned short getDcAntennaIndex();
150  unsigned short getDcNodeIndex();
151 
155  unsigned int getAntMax();
156 
160  void set(AntNum::Id id);
161 
166  bool isSet(unsigned id);
167 
172  bool isSet(AntNum::Id id);
173 
178  bool isSet(AntNum& antNum);
179 
184  bool isSet(AntNum* antNum);
185 
189  void setId(AntNum::Id);
190 
194  void setId(unsigned int id);
195 
199  void setId(const AntNum& antNum);
200 
205  void setIdFromHost();
206 
210  static AntNum::Id intToId(unsigned int iant);
211 
215  static unsigned idToInt(AntNum::Id id);
216 
220  std::string printAntennaSet();
221  std::string printAntennaSet(AntNum::Id id);
222 
223  //------------------------------------------------------------
224  // Member operators
225  //------------------------------------------------------------
226 
230  const AntNum operator+(const AntNum& rx);
231 
235  bool operator<(const AntNum rx);
236 
240  bool operator<=(const AntNum rx);
241 
245  bool operator>(const AntNum rx);
246 
250  bool operator>=(const AntNum rx);
251 
255  bool operator==(const AntNum rx);
256 
260  const AntNum& operator++();
261 
265  const AntNum operator++(int);
266 
267  //------------------------------------------------------------
268  // Non-member operator methods
269  //------------------------------------------------------------
270 
274  friend std::ostream& operator<<(std::ostream& os, const AntNum& rx);
275 
279  friend AntNum::Id operator+(const AntNum::Id id1,
280  const AntNum::Id id2);
281 
285  friend AntNum::Id operator-(const AntNum::Id id1,
286  const AntNum::Id id2);
287 
291  friend bool isValidAnt(unsigned int ant);
292 
296  friend bool isValidAntennaSet(AntNum::Id antennas);
297 
301  friend std::string printAntennaSet(AntNum::Id antennas);
302 
306  friend AntNum::Id intToId(unsigned int iant);
307 
311  friend unsigned idToInt(AntNum::Id id);
312 
313  //------------------------------------------------------------
314  // Private members
315  //------------------------------------------------------------
316 
317  private:
318 
322  void checkMaxAnt();
323 
324  }; // End class AntNum
325 
329  std::ostream& operator<<(std::ostream& os, const AntNum& rx);
330 
334  AntNum::Id operator+(const AntNum::Id id1,
335  const AntNum::Id id2);
336 
340  AntNum::Id operator-(const AntNum::Id id1,
341  const AntNum::Id id2);
342 
346  bool isValidAnt(unsigned int ant);
347 
351  bool isValidAntennaSet(AntNum::Id antennas);
352 
356  std::string printAntennaSet(AntNum::Id antennas);
357 
361  AntNum::Id intToId(unsigned int iant);
362 
366  unsigned idToInt(AntNum::Id id);
367 
368  } // End namespace util
369 } // End namespace gcp
370 
371 
372 #endif
friend bool isValidAnt(unsigned int ant)
std::string getEventChannelName()
Definition: AntNum.cc:279
unsigned short getDcAntennaIndex()
Definition: AntNum.cc:428
bool operator>=(const AntNum rx)
Definition: AntNum.cc:171
bool operator<(const AntNum rx)
Definition: AntNum.cc:127
unsigned int getIntId()
Definition: AntNum.cc:343
std::string getString()
Definition: AntNum.cc:484
bool operator==(const AntNum rx)
Definition: AntNum.cc:184
std::string getObjectName()
Definition: AntNum.cc:249
unsigned int getDelayEngineIntId()
Definition: AntNum.cc:366
bool isSet(unsigned id)
Definition: AntNum.cc:621
std::string getLoggerPrefix()
Definition: AntNum.cc:319
static unsigned idToInt(AntNum::Id id)
Definition: AntNum.cc:596
void set(AntNum::Id id)
Definition: AntNum.cc:612
const AntNum operator+(const AntNum &rx)
Definition: AntNum.cc:114
bool isValidSingleAnt()
Definition: AntNum.cc:87
friend AntNum::Id operator-(const AntNum::Id id1, const AntNum::Id id2)
bool operator>(const AntNum rx)
Definition: AntNum.cc:157
Id getId()
Definition: AntNum.cc:713
unsigned int getAntMax()
Definition: AntNum.cc:448
unsigned short getDcNodeIndex()
Definition: AntNum.cc:440
Id
Definition: AntNum.h:37
static AntNum::Id intToId(unsigned int iant)
Definition: AntNum.cc:604
AntNum()
Definition: AntNum.cc:60
const AntNum & operator++()
Definition: AntNum.cc:199
friend std::ostream & operator<<(std::ostream &os, const AntNum &rx)
void setIdFromHost()
Definition: AntNum.cc:680
std::string printAntennaSet()
Definition: AntNum.cc:416
bool operator<=(const AntNum rx)
Definition: AntNum.cc:141
friend bool isValidAntennaSet(AntNum::Id antennas)
void setId(AntNum::Id)
Definition: AntNum.cc:656
Definition: AntNum.h:23
std::string getAntennaName()
Definition: AntNum.cc:298