00001 #include <string> 00002 #include <vector> 00003 #include <map> 00004 #include <list> 00005 #include <set> 00006 #include <bitset> 00007 00008 struct Param { 00009 Param(); 00010 Param( int seed ); 00011 int p_i; 00012 std::string p_s; 00013 bool operator ==(const Param& rhs) const; 00014 bool operator !=(const Param& rhs) const; 00015 }; 00016 00017 class ArrayPayload { 00018 public: 00019 ArrayPayload(); 00020 ArrayPayload( int seed ); 00021 bool operator ==(const ArrayPayload& rhs) const; 00022 bool operator !=(const ArrayPayload& rhs) const; 00023 private: 00024 int m_i; 00025 // c-arrays 00026 int m_ai0[4]; 00027 int m_ai1[112]; 00028 int m_ai2[3][2]; 00029 int m_ai3[2][80]; 00030 std::string m_as0[4]; 00031 std::string m_as1[112]; 00032 Param m_ap0[4]; 00033 Param m_ap1[112]; 00034 // stl containers 00035 std::pair<unsigned int,unsigned int> m_p0; 00036 std::pair<int,std::string> m_p1; 00037 std::pair<int,Param> m_p2; 00038 std::vector<int> m_vec0; 00039 std::vector<std::string> m_vec1; 00040 std::map<unsigned int,unsigned int> m_map0; 00041 std::map<std::string,std::string> m_map1; 00042 std::list<int> m_list; 00043 std::set<std::string> m_set; 00044 std::bitset<128> m_bitset; 00045 std::vector<Param> m_vec2; 00046 std::map<int,Param> m_map2; 00047 // blob streaming 00048 std::vector<Param> m_vec3; 00049 };