00001 #ifndef BlobComplex_h 00002 #define BlobComplex_h 00003 00004 #include <vector> 00005 #include <utility> 00006 00007 struct BlobComplexData { 00008 BlobComplexData() {} 00009 00010 void fill(unsigned int &serial); 00011 void print() const; 00012 bool operator == (const BlobComplexData &rhs) const; 00013 bool operator != (const BlobComplexData &rhs) const 00014 { return !(*this == rhs); } 00015 00016 unsigned int a, b; 00017 std::vector<unsigned int> values; 00018 }; 00019 00020 struct BlobComplexContent { 00021 BlobComplexContent() {} 00022 00023 void fill(unsigned int &serial); 00024 void print() const; 00025 bool operator == (const BlobComplexContent &rhs) const; 00026 bool operator != (const BlobComplexContent &rhs) const 00027 { return !(*this == rhs); } 00028 00029 typedef std::pair<BlobComplexData, unsigned int> Data; 00030 00031 Data data1; 00032 Data data2; 00033 Data data3; 00034 }; 00035 00036 struct BlobComplexObjects { 00037 BlobComplexObjects() {} 00038 00039 void fill(unsigned int &serial); 00040 void print() const; 00041 bool operator == (const BlobComplexObjects &rhs) const; 00042 bool operator != (const BlobComplexObjects &rhs) const 00043 { return !(*this == rhs); } 00044 00045 unsigned int a, b; 00046 std::vector<BlobComplexContent> content; 00047 }; 00048 00049 struct BlobComplex { 00050 BlobComplex() {} 00051 00052 void fill(unsigned int &serial); 00053 void print() const; 00054 bool operator == (const BlobComplex &rhs) const; 00055 bool operator != (const BlobComplex &rhs) const 00056 { return !(*this == rhs); } 00057 00058 std::vector<BlobComplexObjects> objects; 00059 }; 00060 00061 #endif