中间件底层,websocket

tuple.hpp 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. //******************************************************************************
  2. // RCF - Remote Call Framework
  3. //
  4. // Copyright (c) 2005 - 2020, Delta V Software. All rights reserved.
  5. // http://www.deltavsoft.com
  6. //
  7. // RCF is distributed under dual licenses - closed source or GPL.
  8. // Consult your particular license for conditions of use.
  9. //
  10. // If you have not purchased a commercial license, you are using RCF
  11. // under GPL terms.
  12. //
  13. // Version: 3.2
  14. // Contact: support <at> deltavsoft.com
  15. //
  16. //******************************************************************************
  17. #ifndef INCLUDE_SF_TUPLE_HPP
  18. #define INCLUDE_SF_TUPLE_HPP
  19. #include <RCF/Config.hpp>
  20. #include <boost/tuple/tuple.hpp>
  21. namespace SF {
  22. class Archive;
  23. // boost::tuple
  24. template<
  25. typename T0>
  26. void serialize(SF::Archive &ar, boost::tuples::tuple<T0> &t)
  27. {
  28. ar
  29. & t.template get<0>();
  30. }
  31. template<
  32. typename T0,
  33. typename T1>
  34. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1> &t)
  35. {
  36. ar
  37. & t.template get<0>()
  38. & t.template get<1>();
  39. }
  40. template<
  41. typename T0,
  42. typename T1,
  43. typename T2>
  44. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2> &t)
  45. {
  46. ar
  47. & t.template get<0>()
  48. & t.template get<1>()
  49. & t.template get<2>();
  50. }
  51. template<
  52. typename T0,
  53. typename T1,
  54. typename T2,
  55. typename T3>
  56. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3> &t)
  57. {
  58. ar
  59. & t.template get<0>()
  60. & t.template get<1>()
  61. & t.template get<2>()
  62. & t.template get<3>();
  63. }
  64. template<
  65. typename T0,
  66. typename T1,
  67. typename T2,
  68. typename T3,
  69. typename T4>
  70. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3,T4> &t)
  71. {
  72. ar
  73. & t.template get<0>()
  74. & t.template get<1>()
  75. & t.template get<2>()
  76. & t.template get<3>()
  77. & t.template get<4>();
  78. }
  79. template<
  80. typename T0,
  81. typename T1,
  82. typename T2,
  83. typename T3,
  84. typename T4,
  85. typename T5>
  86. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3,T4,T5> &t)
  87. {
  88. ar
  89. & t.template get<0>()
  90. & t.template get<1>()
  91. & t.template get<2>()
  92. & t.template get<3>()
  93. & t.template get<4>()
  94. & t.template get<5>();
  95. }
  96. template<
  97. typename T0,
  98. typename T1,
  99. typename T2,
  100. typename T3,
  101. typename T4,
  102. typename T5,
  103. typename T6>
  104. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6> &t)
  105. {
  106. ar
  107. & t.template get<0>()
  108. & t.template get<1>()
  109. & t.template get<2>()
  110. & t.template get<3>()
  111. & t.template get<4>()
  112. & t.template get<5>()
  113. & t.template get<6>();
  114. }
  115. template<
  116. typename T0,
  117. typename T1,
  118. typename T2,
  119. typename T3,
  120. typename T4,
  121. typename T5,
  122. typename T6,
  123. typename T7>
  124. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7> &t)
  125. {
  126. ar
  127. & t.template get<0>()
  128. & t.template get<1>()
  129. & t.template get<2>()
  130. & t.template get<3>()
  131. & t.template get<4>()
  132. & t.template get<5>()
  133. & t.template get<6>()
  134. & t.template get<7>();
  135. }
  136. template<
  137. typename T0,
  138. typename T1,
  139. typename T2,
  140. typename T3,
  141. typename T4,
  142. typename T5,
  143. typename T6,
  144. typename T7,
  145. typename T8>
  146. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8> &t)
  147. {
  148. ar
  149. & t.template get<0>()
  150. & t.template get<1>()
  151. & t.template get<2>()
  152. & t.template get<3>()
  153. & t.template get<4>()
  154. & t.template get<5>()
  155. & t.template get<6>()
  156. & t.template get<7>()
  157. & t.template get<8>();
  158. }
  159. template<
  160. typename T0,
  161. typename T1,
  162. typename T2,
  163. typename T3,
  164. typename T4,
  165. typename T5,
  166. typename T6,
  167. typename T7,
  168. typename T8,
  169. typename T9>
  170. void serialize(SF::Archive &ar, boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> &t)
  171. {
  172. ar
  173. & t.template get<0>()
  174. & t.template get<1>()
  175. & t.template get<2>()
  176. & t.template get<3>()
  177. & t.template get<4>()
  178. & t.template get<5>()
  179. & t.template get<6>()
  180. & t.template get<7>()
  181. & t.template get<8>()
  182. & t.template get<9>();
  183. }
  184. }
  185. #endif // ! INCLUDE_SF_TUPLE_HPP