CARMA C++
CobraCorrelationInfo.h
1 #ifndef COBRACORRELATIONINFO_H
2 #define COBRACORRELATIONINFO_H
3 
4 #include <vector>
6 
7 namespace carma {
8  namespace correlator {
9  namespace lib {
10 
11  class CobraCorrelationInfo :
13  public:
14  CobraCorrelationInfo(){input_.resize(2);}
15  ~CobraCorrelationInfo(){}
16 
17  int size()
18  {
19  // Return serialized size
20  return (4*4);
21  }
22 
23  int getSizeInBytes() const {
24  return (4*4);
25  }
26 
27  void mySerialize( char * const byteArray,
28  int * const offset ) const
29  {
30  pack(type_, byteArray, offset);
31  pack(input_[0], byteArray, offset);
32  pack(input_[1], byteArray, offset);
33  pack(offset_, byteArray, offset);
34  }
35 
36  void deserializeVer0( const char * const byteArray,
37  int * const offset,
38  int byteArraySize )
39  {
40  unpack(type_, byteArray, offset, byteArraySize);
41  unpack(input_[0], byteArray, offset, byteArraySize);
42  unpack(input_[1], byteArray, offset, byteArraySize);
43  unpack(offset_, byteArray, offset, byteArraySize);
44  }
45 
46  void deserializeVer1( const char * const byteArray,
47  int * const offset,
48  int byteArraySize )
49  {
50  unpack(type_, byteArray, offset, byteArraySize);
51  unpack(input_[0], byteArray, offset, byteArraySize);
52  unpack(input_[1], byteArray, offset, byteArraySize);
53  unpack(offset_, byteArray, offset, byteArraySize);
54  }
55 
56  void deserializeSwapVer0( const char * const byteArray,
57  int * const offset,
58  int byteArraySize )
59  {
60  unpackSwap(type_, byteArray, offset, byteArraySize);
61  unpackSwap(input_[0], byteArray, offset, byteArraySize);
62  unpackSwap(input_[1], byteArray, offset, byteArraySize);
63  unpackSwap(offset_, byteArray, offset, byteArraySize);
64  }
65 
66  void deserializeSwapVer1( const char * const byteArray,
67  int * const offset,
68  int byteArraySize )
69  {
70  unpackSwap(type_, byteArray, offset, byteArraySize);
71  unpackSwap(input_[0], byteArray, offset, byteArraySize);
72  unpackSwap(input_[1], byteArray, offset, byteArraySize);
73  unpackSwap(offset_, byteArray, offset, byteArraySize);
74  }
75 
76  // Equality operator (used when comparing objects)
77  bool operator== (const CobraCorrelationInfo &rhs)
78  {
79  return ((input_[0] == rhs.input_[0]) &&
80  (input_[1] == rhs.input_[1]) &&
81  (offset_ == rhs.offset_));
82  }
83  bool operator!= (const CobraCorrelationInfo &rhs)
84  {
85  return !(*this == rhs);
86  }
87 
88  // Member accessors
89  //
90  // Routines used by data readers, eg. after the format
91  // has been reconstructed via a call to deserialize.
92  //
93  int getInput(int num = 0)
94  {return input_[num];}
95  int getOffset()
96  {return offset_;}
97  bool isAuto()
98  { return (type_ == 0); }
99  bool isCross()
100  { return (type_ != 0); }
101 
102  // Routines used by data writers, eg. before the format
103  // has been deconstructed via a call to mySerialize.
104  //
105  void setInput(int num, int val)
106  {input_[num] = val;}
107  void setOffset(int offset)
108  {offset_ = offset;}
109  void setTypeAuto()
110  {type_ = 0; }
111  void setTypeCross()
112  {type_ = 1; }
113  private:
114  int type_;
115  std::vector<int> input_;
116  int offset_;
117  };
118  };
119  };
120 };
121 
122 #endif // COBRACORRELATIONINFO_H
123 
124 
Abstract Class used to allow object to serialize themselves into a byte array.
Definition: Serializable.h:32