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