1 | #if 0 |
2 | #include <stdexcept> |
3 | #include <iostream> |
4 | #include <sstream> |
5 | |
6 | #include <boost/optional.hpp> |
7 | #include <boost/archive/text_oarchive.hpp> |
8 | #include <boost/archive/text_iarchive.hpp> |
9 | #include <boost/serialization/optional.hpp> |
10 | |
11 | struct Foo |
12 | { |
13 | Foo(int aBar) : |
14 | mBar(aBar) |
15 | { |
16 | if (mBar > 10) |
17 | { |
18 | throw std::logic_error("too big bar" ); |
19 | } |
20 | } |
21 | int bar() const |
22 | { |
23 | return mBar; |
24 | } |
25 | bool operator==(const Foo & rhs) const { |
26 | return mBar == rhs.mBar; |
27 | } |
28 | private: |
29 | int mBar; |
30 | }; |
31 | |
32 | namespace boost { |
33 | namespace serialization { |
34 | |
35 | template<class Archive> |
36 | inline void serialize(Archive & ar, Foo& foo, const unsigned int /*version*/) |
37 | { |
38 | std::cout << __FUNCTION__ << " called" << std::endl; |
39 | } |
40 | |
41 | template<class Archive> |
42 | inline void save_construct_data(Archive & ar, const Foo* foo, const unsigned int /*version*/) |
43 | { |
44 | std::cout << __FUNCTION__ << " called" << std::endl; |
45 | ar & foo->bar(); |
46 | } |
47 | |
48 | template<class Archive> |
49 | inline void load_construct_data(Archive & ar, Foo* foo, const unsigned int /*version*/) |
50 | { |
51 | std::cout << __FUNCTION__ << " called" << std::endl; |
52 | int bar; |
53 | ar & bar; |
54 | ::new(foo) Foo(bar); |
55 | } |
56 | |
57 | } // serialization |
58 | } // boost |
59 | |
60 | |
61 | int main() |
62 | { |
63 | boost::optional<Foo> oldFoo = Foo(10); |
64 | std::ostringstream outStream; |
65 | boost::archive::text_oarchive outArchive(outStream); |
66 | outArchive & oldFoo; |
67 | |
68 | boost::optional<Foo> newFoo; |
69 | std::istringstream inStream(outStream.str()); |
70 | boost::archive::text_iarchive inArchive(inStream); |
71 | inArchive & newFoo; |
72 | |
73 | return !(newFoo == oldFoo); |
74 | } |
75 | |
76 | #elif 0 |
77 | /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
78 | // test_optional.cpp |
79 | |
80 | // (C) Copyright 2004 Pavel Vozenilek |
81 | // Use, modification and distribution is subject to the Boost Software |
82 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
83 | // http://www.boost.org/LICENSE_1_0.txt) |
84 | |
85 | // should pass compilation and execution |
86 | |
87 | #include <cstddef> // NULL |
88 | #include <cstdio> // remove |
89 | #include <fstream> |
90 | |
91 | #include <boost/config.hpp> |
92 | |
93 | #if defined(BOOST_NO_STDC_NAMESPACE) |
94 | namespace std{ |
95 | using ::remove; |
96 | } |
97 | #endif |
98 | |
99 | #include <boost/archive/archive_exception.hpp> |
100 | |
101 | #define BOOST_ARCHIVE_TEST xml_archive.hpp |
102 | |
103 | #include "test_tools.hpp" |
104 | |
105 | #include <boost/serialization/optional.hpp> |
106 | |
107 | #include "A.hpp" |
108 | #include "A.ipp" |
109 | |
110 | int test_main( int /* argc */, char* /* argv */[] ) |
111 | { |
112 | const char * testfile = boost::archive::tmpnam(NULL); |
113 | BOOST_REQUIRE(NULL != testfile); |
114 | |
115 | const boost::optional<int> aoptional1; |
116 | const boost::optional<int> aoptional2(123); |
117 | { |
118 | test_ostream os(testfile, TEST_STREAM_FLAGS); |
119 | test_oarchive oa(os, TEST_ARCHIVE_FLAGS); |
120 | //oa << boost::serialization::make_nvp("aoptional1",aoptional1); |
121 | //oa << boost::serialization::make_nvp("aoptional2",aoptional2); |
122 | } |
123 | /* |
124 | boost::optional<int> aoptional1a(999); |
125 | boost::optional<int> aoptional2a; |
126 | { |
127 | test_istream is(testfile, TEST_STREAM_FLAGS); |
128 | test_iarchive ia(is, TEST_ARCHIVE_FLAGS); |
129 | ia >> boost::serialization::make_nvp("aoptional1",aoptional1a); |
130 | ia >> boost::serialization::make_nvp("aoptional2",aoptional2a); |
131 | } |
132 | BOOST_CHECK(aoptional1 == aoptional1a); |
133 | BOOST_CHECK(aoptional2 == aoptional2a); |
134 | */ |
135 | std::remove(testfile); |
136 | return EXIT_SUCCESS; |
137 | } |
138 | |
139 | // EOF |
140 | |
141 | #elif 0 |
142 | |
143 | #include <fstream> |
144 | |
145 | #include <boost/archive/xml_woarchive.hpp> |
146 | #include <boost/archive/xml_wiarchive.hpp> |
147 | #include <boost/serialization/string.hpp> |
148 | |
149 | #include "test_tools.hpp" |
150 | |
151 | int test_main(int, char *argv[]) |
152 | { |
153 | const char * testfile = boost::archive::tmpnam(NULL); |
154 | std::string s1 = "kkkabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ; |
155 | std::wstring w1 = L"kkk" ; |
156 | std::wstring w2 = L"апр" ; // some non-latin (for example russians) letters |
157 | { |
158 | std::wofstream ofs(testfile); |
159 | { |
160 | boost::archive::xml_woarchive oa(ofs); |
161 | oa << boost::serialization::make_nvp("key1" , s1); |
162 | //oa << boost::serialization::make_nvp("key2", w1); |
163 | //oa << boost::serialization::make_nvp("key3", w2); // here exception is thrown |
164 | } |
165 | } |
166 | std::string new_s1; |
167 | //std::wstring new_w1; |
168 | //std::wstring new_w2; |
169 | { |
170 | std::wifstream ifs(testfile); |
171 | { |
172 | boost::archive::xml_wiarchive ia(ifs); |
173 | ia >> boost::serialization::make_nvp("key1" , new_s1); |
174 | //ia >> boost::serialization::make_nvp("key2", new_w1); |
175 | //ia >> boost::serialization::make_nvp("key3", new_w2); // here exception is thrown |
176 | } |
177 | } |
178 | BOOST_CHECK(s1 == new_s1); |
179 | //BOOST_CHECK(w1 == new_w1); |
180 | //BOOST_CHECK(w2 == new_w2); |
181 | return 0; |
182 | } |
183 | |
184 | #elif 0 |
185 | |
186 | #include <boost/archive/xml_oarchive.hpp> |
187 | #include <boost/serialization/nvp.hpp> |
188 | |
189 | #include <iostream> |
190 | |
191 | int main() { |
192 | boost::archive::xml_oarchive oa( std::cerr ); |
193 | int bob = 3; |
194 | oa << boost::serialization::make_nvp( "bob" , bob ); |
195 | } |
196 | |
197 | #elif 0 |
198 | |
199 | #include <fstream> |
200 | #include <vector> |
201 | #include <iostream> |
202 | |
203 | #include <boost/archive/binary_iarchive.hpp> |
204 | #include <boost/serialization/nvp.hpp> |
205 | #include <boost/serialization/shared_ptr.hpp> |
206 | #include <boost/serialization/vector.hpp> |
207 | |
208 | struct boxed_int |
209 | { |
210 | boxed_int() : i(0) {} |
211 | boxed_int(int i) : i(i) {} |
212 | int i; |
213 | template<class Archive> |
214 | void serialize(Archive &ar, unsigned version) |
215 | { |
216 | ar & BOOST_SERIALIZATION_NVP(i); |
217 | } |
218 | }; |
219 | typedef boost::shared_ptr<boxed_int> pi; |
220 | |
221 | void go(std::istream &is) { |
222 | std::vector<pi> vv; |
223 | try |
224 | { |
225 | boost::archive::binary_iarchive ia(is); |
226 | ia & vv; |
227 | } |
228 | catch(std::exception &e) {} |
229 | } |
230 | |
231 | int main(int argc, char **argv) { |
232 | if(argc > 1) { |
233 | std::ifstream is(argv[1]); |
234 | go(is); |
235 | } else { |
236 | go(std::cin); |
237 | } |
238 | |
239 | return 0; |
240 | } |
241 | |
242 | #elif 0 |
243 | |
244 | #include <cassert> |
245 | #include <string> |
246 | |
247 | #include <boost/archive/iterators/base64_from_binary.hpp> |
248 | #include <boost/archive/iterators/transform_width.hpp> |
249 | |
250 | namespace bai = boost::archive::iterators; |
251 | int main() |
252 | { |
253 | std::string input = |
254 | "A large rose-tree stood near the entrance of the garden: the roses growing on it were white, but there were " |
255 | "three gardeners at it, busily painting them red. Alice thought this a very curious thing, and she went nearer " |
256 | "to watch them, and just as she came up to them she heard one of them say, 'Look out now, Five! Don't go " |
257 | "splashing paint over me like that!''I couldn't help it,' said Five, in a sulky tone; 'Seven jogged my " |
258 | "elbow.'On which Seven looked up and said, 'That's right, Five! Always lay the blame on others!''You'd better " |
259 | "not talk!' said Five. 'I heard the Queen say only yesterday you deserved to be beheaded!''What for?' said the " |
260 | "one who had spoken first.'That's none of your business, Two!' said Seven.'Yes, it is his business!' said " |
261 | "Five, 'and I'll tell him—it was for bringing the cook tulip-roots instead of onions.'Seven flung down his " |
262 | "brush, and had just begun 'Well, of all the unjust things—' when his eye chanced to fall upon Alice, as she " |
263 | "stood watching them, and he checked himself suddenly: the others looked round also, and all of them bowed " |
264 | "low.'Would you tell me,' said Alice, a little timidly, 'why you are painting those roses?'Five and Seven said " |
265 | "nothing, but looked at Two. Two began in a low voice, 'Why the fact is, you see, Miss, this here ought to " |
266 | "have been a red rose-tree, and we put a white one in by mistake; and if the Queen was to find it out, we " |
267 | "should all have our heads cut off, you know. So you see, Miss, we're doing our best, afore she comes, to—' At " |
268 | "this moment Five, who had been anxiously looking across the garden, called out 'The Queen! The Queen!' and " |
269 | "the three gardeners instantly threw themselves flat upon their faces. There was a sound of many footsteps, " |
270 | "and Alice looked round, eager to see the Queen.First came ten soldiers carrying clubs; these were all shaped " |
271 | "like the three gardeners, oblong and flat, with their hands and feet at the corners: next the ten courtiers; " |
272 | "these were ornamented all over with diamonds, and walked two and two, as the soldiers did. After these came " |
273 | "the royal children; there were ten of them, and the little dears came jumping merrily along hand in hand, in " |
274 | "couples: they were all ornamented with hearts. Next came the guests, mostly Kings and Queens, and among them " |
275 | "Alice recognised the White Rabbit: it was talking in a hurried nervous manner, smiling at everything that was " |
276 | "said, and went by without noticing her. Then followed the Knave of Hearts, carrying the King's crown on a " |
277 | "crimson velvet cushion; and, last of all this grand procession, came THE KING AND QUEEN OF HEARTS.Alice was " |
278 | "rather doubtful whether she ought not to lie down on her face like the three gardeners, but she could not " |
279 | "remember ever having heard of such a rule at processions; 'and besides, what would be the use of a " |
280 | "procession,' thought she, 'if people had all to lie down upon their faces, so that they couldn't see it?' So " |
281 | "she stood still where she was, and waited.When the procession came opposite to Alice, they all stopped and " |
282 | "looked at her, and the Queen said severely 'Who is this?' She said it to the Knave of Hearts, who only bowed " |
283 | "and smiled in reply.'Idiot!' said the Queen, tossing her head impatiently; and, turning to Alice, she went " |
284 | "on, 'What's your name, child?''My name is Alice, so please your Majesty,' said Alice very politely; but she " |
285 | "added, to herself, 'Why, they're only a pack of cards, after all. I needn't be afraid of them!''And who are " |
286 | "these?' said the Queen, pointing to the three gardeners who were lying round the rosetree; for, you see, as " |
287 | "they were lying on their faces, and the pattern on their backs was the same as the rest of the pack, she " |
288 | "could not tell whether they were gardeners, or soldiers, or courtiers, or three of her own children.'How " |
289 | "should I know?' said Alice, surprised at her own courage. 'It's no business of mine.'The Queen turned crimson " |
290 | "with fury, and, after glaring at her for a moment like a wild beast, screamed 'Off with her head! " |
291 | "Off—''Nonsense!' said Alice, very loudly and decidedly, and the Queen was silent.The King laid his hand upon " |
292 | "her arm, and timidly said 'Consider, my dear: she is only a child!'The Queen turned angrily away from him, " |
293 | "and said to the Knave 'Turn them over!'The Knave did so, very carefully, with one foot.'Get up!' said the " |
294 | "Queen, in a shrill, loud voice, and the three gardeners instantly jumped up, and began bowing to the King, " |
295 | "the Queen, the royal children, and everybody else.'Leave off that!' screamed the Queen. 'You make me giddy.' " |
296 | "And then, turning to the rose-tree, she went on, 'What have you been doing here?''May it please your " |
297 | "Majesty,' said Two, in a very humble tone, going down on one knee as he spoke, 'we were trying—''I see!' said " |
298 | "the Queen, who had meanwhile been examining the roses. 'Off with their heads!' and the procession moved on, " |
299 | "three of the soldiers remaining behind to execute the unfortunate gardeners, who ran to Alice for " |
300 | "protection.'You shan't be beheaded!' said Alice, and she put them into a large flower-pot that stood near. " |
301 | "The three soldiers wandered about for a minute or two, looking for them, and then quietly marched off after " |
302 | "the others.'Are their heads off?' shouted the Queen.'Their heads are gone, if it please your Majesty!' the " |
303 | "soldiers shouted in reply.'That's right!' shouted the Queen. 'Can you play croquet?'The soldiers were silent, " |
304 | "and looked at Alice, as the question was evidently meant for her.'Yes!' shouted Alice.'Come on, then!' roared " |
305 | "the Queen, and Alice joined the procession, wondering very much what would happen next.'It's—it's a very fine " |
306 | "day!' said a timid voice at her side. She was walking by the White Rabbit, who was peeping anxiously into her " |
307 | "face.'Very,' said Alice: '—where's the Duchess?''Hush! Hush!' said the Rabbit in a low, hurried tone. He " |
308 | "looked anxiously over his shoulder as he spoke, and then raised himself upon tiptoe, put his mouth close to " |
309 | "her ear, and whispered 'She's under sentence of execution.''What for?' said Alice.'Did you say \"What a " |
310 | "pity!\"?' the Rabbit asked.'No, I didn't,' said Alice: 'I don't think it's at all a pity. I said \"What " |
311 | "for?\"''She boxed the Queen's ears—' the Rabbit began. Alice gave a little scream of laughter. 'Oh, hush!' " |
312 | "the Rabbit whispered in a frightened tone. 'The Queen will hear you! You see, she came rather late, and the " |
313 | "Queen said—''Get to your places!' shouted the Queen in a voice of thunder, and people began running about in " |
314 | "all directions, tumbling up against each other; however, they got settled down in a minute or two, and the " |
315 | "game began. Alice thought she had never seen such a curious croquet-ground in her life; it was all ridges and " |
316 | "furrows; the balls were live hedgehogs, the mallets live flamingoes, and the soldiers had to double " |
317 | "themselves up and to stand on their hands and feet, to make the arches.The chief difficulty Alice found at " |
318 | "first was in managing her flamingo: she succeeded in getting its body tucked away, comfortably enough, under " |
319 | "her arm, with its legs hanging down, but generally, just as she had got its neck nicely straightened out, and " |
320 | "was going to give the hedgehog a blow with its head, it would twist itself round and look up in her face, " |
321 | "with such a puzzled expression that she could not help bursting out laughing: and when she had got its head " |
322 | "down, and was going to begin again, it was very provoking to find that the hedgehog had unrolled itself, and " |
323 | "was in the act of crawling away: besides all this, there was generally a ridge or furrow in the way wherever " |
324 | "she wanted to send the hedgehog to, and, as the doubled-up soldiers were always getting up and walking off to " |
325 | "other parts of the ground, Alice soon came to the conclusion that it was a very difficult game indeed.The " |
326 | "players all played at once without waiting for turns, quarrelling all the while, and fighting for the " |
327 | "hedgehogs; and in a very short time the Queen was in a furious passion, and went stamping about, and shouting " |
328 | "'Off with his head!' or 'Off with her head!' about once in a minute.Alice began to feel very uneasy: to be " |
329 | "sure, she had not as yet had any dispute with the Queen, but she knew that it might happen any minute, 'and " |
330 | "then,' thought she, 'what would become of me? They're dreadfully fond of beheading people here; the great " |
331 | "wonder is, that there's any one left alive!'She was looking about for some way of escape, and wondering " |
332 | "whether she could get away without being seen, when she noticed a curious appearance in the air: it puzzled " |
333 | "her very much at first, but, after watching it a minute or two, she made it out to be a grin, and she said to " |
334 | "herself 'It's the Cheshire Cat: now I shall have somebody to talk to.''How are you getting on?' said the Cat, " |
335 | "as soon as there was mouth enough for it to speak with.Alice waited till the eyes appeared, and then nodded. " |
336 | "'It's no use speaking to it,' she thought, 'till its ears have come, or at least one of them.' In another " |
337 | "minute the whole head appeared, and then Alice put down her flamingo, and began an account of the game, " |
338 | "feeling very glad she had someone to listen to her. The Cat seemed to think that there was enough of it now " |
339 | "in sight, and no more of it appeared.'I don't think they play at all fairly,' Alice began, in rather a " |
340 | "complaining tone, 'and they all quarrel so dreadfully one can't hear oneself speak—and they don't seem to " |
341 | "have any rules in particular; at least, if there are, nobody attends to them—and you've no idea how confusing " |
342 | "it is all the things being alive; for instance, there's the arch I've got to go through next walking about at " |
343 | "the other end of the ground—and I should have croqueted the Queen's hedgehog just now, only it ran away when " |
344 | "it saw mine coming!''How do you like the Queen?' said the Cat in a low voice.'Not at all,' said Alice: 'she's " |
345 | "so extremely—' Just then she noticed that the Queen was close behind her, listening: so she went on, '—likely " |
346 | "to win, that it's hardly worth while finishing the game.'The Queen smiled and passed on.'Who are you talking " |
347 | "to?' said the King, going up to Alice, and looking at the Cat's head with great curiosity.'It's a friend of " |
348 | "mine—a Cheshire Cat,' said Alice: 'allow me to introduce it.''I don't like the look of it at all,' said the " |
349 | "King: 'however, it may kiss my hand if it likes.''I'd rather not,' the Cat remarked.'Don't be impertinent,' " |
350 | "said the King, 'and don't look at me like that!' He got behind Alice as he spoke.'A cat may look at a king,' " |
351 | "said Alice. 'I've read that in some book, but I don't remember where.''Well, it must be removed,' said the " |
352 | "King very decidedly, and he called the Queen, who was passing at the moment, 'My dear! I wish you would have " |
353 | "this cat removed!'The Queen had only one way of settling all difficulties, great or small. 'Off with his " |
354 | "head!' she said, without even looking round.'I'll fetch the executioner myself,' said the King eagerly, and " |
355 | "he hurried off.Alice thought she might as well go back, and see how the game was going on, as she heard the " |
356 | "Queen's voice in the distance, screaming with passion. She had already heard her sentence three of the " |
357 | "players to be executed for having missed their turns, and she did not like the look of things at all, as the " |
358 | "game was in such confusion that she never knew whether it was her turn or not. So she went in search of her " |
359 | "hedgehog.The hedgehog was engaged in a fight with another hedgehog, which seemed to Alice an excellent " |
360 | "opportunity for croqueting one of them with the other: the only difficulty was, that her flamingo was gone " |
361 | "across to the other side of the garden, where Alice could see it trying in a helpless sort of way to fly up " |
362 | "into a tree.By the time she had caught the flamingo and brought it back, the fight was over, and both the " |
363 | "hedgehogs were out of sight: 'but it doesn't matter much,' thought Alice, 'as all the arches are gone from " |
364 | "this side of the ground.' So she tucked it away under her arm, that it might not escape again, and went back " |
365 | "for a little more conversation with her friend.When she got back to the Cheshire Cat, she was surprised to " |
366 | "find quite a large crowd collected round it: there was a dispute going on between the executioner, the King, " |
367 | "and the Queen, who were all talking at once, while all the rest were quite silent, and looked very " |
368 | "uncomfortable.The moment Alice appeared, she was appealed to by all three to settle the question, and they " |
369 | "repeated their arguments to her, though, as they all spoke at once, she found it very hard indeed to make out " |
370 | "exactly what they said.The executioner's argument was, that you couldn't cut off a head unless there was a " |
371 | "body to cut it off from: that he had never had to do such a thing before, and he wasn't going to begin at his " |
372 | "time of life.The King's argument was, that anything that had a head could be beheaded, and that you weren't " |
373 | "to talk nonsense.The Queen's argument was, that if something wasn't done about it in less than no time she'd " |
374 | "have everybody executed, all round. (It was this last remark that had made the whole party look so grave and " |
375 | "anxious.)Alice could think of nothing else to say but 'It belongs to the Duchess: you'd better ask her about " |
376 | "it.''She's in prison,' the Queen said to the executioner: 'fetch her here.' And the executioner went off like " |
377 | "an arrow.The Cat's head began fading away the moment he was gone, and, by the time he had come back with the " |
378 | "Duchess, it had entirely disappeared; so the King and the executioner ran wildly up and down looking for it, " |
379 | "while the rest of the party went back to the game." ; |
380 | std::string output = |
381 | "QSBsYXJnZSByb3NlLXRyZWUgc3Rvb2QgbmVhciB0aGUgZW50cmFuY2Ugb2YgdGhlIGdhcmRlbjogdGhlIHJvc2VzIGdyb3dpbmcgb24gaXQgd2" |
382 | "VyZSB3aGl0ZSwgYnV0IHRoZXJlIHdlcmUgdGhyZWUgZ2FyZGVuZXJzIGF0IGl0LCBidXNpbHkgcGFpbnRpbmcgdGhlbSByZWQuIEFsaWNlIHRo" |
383 | "b3VnaHQgdGhpcyBhIHZlcnkgY3VyaW91cyB0aGluZywgYW5kIHNoZSB3ZW50IG5lYXJlciB0byB3YXRjaCB0aGVtLCBhbmQganVzdCBhcyBzaG" |
384 | "UgY2FtZSB1cCB0byB0aGVtIHNoZSBoZWFyZCBvbmUgb2YgdGhlbSBzYXksICdMb29rIG91dCBub3csIEZpdmUhIERvbid0IGdvIHNwbGFzaGlu" |
385 | "ZyBwYWludCBvdmVyIG1lIGxpa2UgdGhhdCEnJ0kgY291bGRuJ3QgaGVscCBpdCwnIHNhaWQgRml2ZSwgaW4gYSBzdWxreSB0b25lOyAnU2V2ZW" |
386 | "4gam9nZ2VkIG15IGVsYm93LidPbiB3aGljaCBTZXZlbiBsb29rZWQgdXAgYW5kIHNhaWQsICdUaGF0J3MgcmlnaHQsIEZpdmUhIEFsd2F5cyBs" |
387 | "YXkgdGhlIGJsYW1lIG9uIG90aGVycyEnJ1lvdSdkIGJldHRlciBub3QgdGFsayEnIHNhaWQgRml2ZS4gJ0kgaGVhcmQgdGhlIFF1ZWVuIHNheS" |
388 | "Bvbmx5IHllc3RlcmRheSB5b3UgZGVzZXJ2ZWQgdG8gYmUgYmVoZWFkZWQhJydXaGF0IGZvcj8nIHNhaWQgdGhlIG9uZSB3aG8gaGFkIHNwb2tl" |
389 | "biBmaXJzdC4nVGhhdCdzIG5vbmUgb2YgeW91ciBidXNpbmVzcywgVHdvIScgc2FpZCBTZXZlbi4nWWVzLCBpdCBpcyBoaXMgYnVzaW5lc3MhJy" |
390 | "BzYWlkIEZpdmUsICdhbmQgSSdsbCB0ZWxsIGhpbeKAlGl0IHdhcyBmb3IgYnJpbmdpbmcgdGhlIGNvb2sgdHVsaXAtcm9vdHMgaW5zdGVhZCBv" |
391 | "ZiBvbmlvbnMuJ1NldmVuIGZsdW5nIGRvd24gaGlzIGJydXNoLCBhbmQgaGFkIGp1c3QgYmVndW4gJ1dlbGwsIG9mIGFsbCB0aGUgdW5qdXN0IH" |
392 | "RoaW5nc+" |
393 | "KAlCcgd2hlbiBoaXMgZXllIGNoYW5jZWQgdG8gZmFsbCB1cG9uIEFsaWNlLCBhcyBzaGUgc3Rvb2Qgd2F0Y2hpbmcgdGhlbSwgYW5kIGhlIGNo" |
394 | "ZWNrZWQgaGltc2VsZiBzdWRkZW5seTogdGhlIG90aGVycyBsb29rZWQgcm91bmQgYWxzbywgYW5kIGFsbCBvZiB0aGVtIGJvd2VkIGxvdy4nV2" |
395 | "91bGQgeW91IHRlbGwgbWUsJyBzYWlkIEFsaWNlLCBhIGxpdHRsZSB0aW1pZGx5LCAnd2h5IHlvdSBhcmUgcGFpbnRpbmcgdGhvc2Ugcm9zZXM/" |
396 | "J0ZpdmUgYW5kIFNldmVuIHNhaWQgbm90aGluZywgYnV0IGxvb2tlZCBhdCBUd28uIFR3byBiZWdhbiBpbiBhIGxvdyB2b2ljZSwgJ1doeSB0aG" |
397 | "UgZmFjdCBpcywgeW91IHNlZSwgTWlzcywgdGhpcyBoZXJlIG91Z2h0IHRvIGhhdmUgYmVlbiBhIHJlZCByb3NlLXRyZWUsIGFuZCB3ZSBwdXQg" |
398 | "YSB3aGl0ZSBvbmUgaW4gYnkgbWlzdGFrZTsgYW5kIGlmIHRoZSBRdWVlbiB3YXMgdG8gZmluZCBpdCBvdXQsIHdlIHNob3VsZCBhbGwgaGF2ZS" |
399 | "BvdXIgaGVhZHMgY3V0IG9mZiwgeW91IGtub3cuIFNvIHlvdSBzZWUsIE1pc3MsIHdlJ3JlIGRvaW5nIG91ciBiZXN0LCBhZm9yZSBzaGUgY29t" |
400 | "ZXMsIHRv4oCUJyBBdCB0aGlzIG1vbWVudCBGaXZlLCB3aG8gaGFkIGJlZW4gYW54aW91c2x5IGxvb2tpbmcgYWNyb3NzIHRoZSBnYXJkZW4sIG" |
401 | "NhbGxlZCBvdXQgJ1RoZSBRdWVlbiEgVGhlIFF1ZWVuIScgYW5kIHRoZSB0aHJlZSBnYXJkZW5lcnMgaW5zdGFudGx5IHRocmV3IHRoZW1zZWx2" |
402 | "ZXMgZmxhdCB1cG9uIHRoZWlyIGZhY2VzLiBUaGVyZSB3YXMgYSBzb3VuZCBvZiBtYW55IGZvb3RzdGVwcywgYW5kIEFsaWNlIGxvb2tlZCByb3" |
403 | "VuZCwgZWFnZXIgdG8gc2VlIHRoZSBRdWVlbi5GaXJzdCBjYW1lIHRlbiBzb2xkaWVycyBjYXJyeWluZyBjbHViczsgdGhlc2Ugd2VyZSBhbGwg" |
404 | "c2hhcGVkIGxpa2UgdGhlIHRocmVlIGdhcmRlbmVycywgb2Jsb25nIGFuZCBmbGF0LCB3aXRoIHRoZWlyIGhhbmRzIGFuZCBmZWV0IGF0IHRoZS" |
405 | "Bjb3JuZXJzOiBuZXh0IHRoZSB0ZW4gY291cnRpZXJzOyB0aGVzZSB3ZXJlIG9ybmFtZW50ZWQgYWxsIG92ZXIgd2l0aCBkaWFtb25kcywgYW5k" |
406 | "IHdhbGtlZCB0d28gYW5kIHR3bywgYXMgdGhlIHNvbGRpZXJzIGRpZC4gQWZ0ZXIgdGhlc2UgY2FtZSB0aGUgcm95YWwgY2hpbGRyZW47IHRoZX" |
407 | "JlIHdlcmUgdGVuIG9mIHRoZW0sIGFuZCB0aGUgbGl0dGxlIGRlYXJzIGNhbWUganVtcGluZyBtZXJyaWx5IGFsb25nIGhhbmQgaW4gaGFuZCwg" |
408 | "aW4gY291cGxlczogdGhleSB3ZXJlIGFsbCBvcm5hbWVudGVkIHdpdGggaGVhcnRzLiBOZXh0IGNhbWUgdGhlIGd1ZXN0cywgbW9zdGx5IEtpbm" |
409 | "dzIGFuZCBRdWVlbnMsIGFuZCBhbW9uZyB0aGVtIEFsaWNlIHJlY29nbmlzZWQgdGhlIFdoaXRlIFJhYmJpdDogaXQgd2FzIHRhbGtpbmcgaW4g" |
410 | "YSBodXJyaWVkIG5lcnZvdXMgbWFubmVyLCBzbWlsaW5nIGF0IGV2ZXJ5dGhpbmcgdGhhdCB3YXMgc2FpZCwgYW5kIHdlbnQgYnkgd2l0aG91dC" |
411 | "Bub3RpY2luZyBoZXIuIFRoZW4gZm9sbG93ZWQgdGhlIEtuYXZlIG9mIEhlYXJ0cywgY2FycnlpbmcgdGhlIEtpbmcncyBjcm93biBvbiBhIGNy" |
412 | "aW1zb24gdmVsdmV0IGN1c2hpb247IGFuZCwgbGFzdCBvZiBhbGwgdGhpcyBncmFuZCBwcm9jZXNzaW9uLCBjYW1lIFRIRSBLSU5HIEFORCBRVU" |
413 | "VFTiBPRiBIRUFSVFMuQWxpY2Ugd2FzIHJhdGhlciBkb3VidGZ1bCB3aGV0aGVyIHNoZSBvdWdodCBub3QgdG8gbGllIGRvd24gb24gaGVyIGZh" |
414 | "Y2UgbGlrZSB0aGUgdGhyZWUgZ2FyZGVuZXJzLCBidXQgc2hlIGNvdWxkIG5vdCByZW1lbWJlciBldmVyIGhhdmluZyBoZWFyZCBvZiBzdWNoIG" |
415 | "EgcnVsZSBhdCBwcm9jZXNzaW9uczsgJ2FuZCBiZXNpZGVzLCB3aGF0IHdvdWxkIGJlIHRoZSB1c2Ugb2YgYSBwcm9jZXNzaW9uLCcgdGhvdWdo" |
416 | "dCBzaGUsICdpZiBwZW9wbGUgaGFkIGFsbCB0byBsaWUgZG93biB1cG9uIHRoZWlyIGZhY2VzLCBzbyB0aGF0IHRoZXkgY291bGRuJ3Qgc2VlIG" |
417 | "l0PycgU28gc2hlIHN0b29kIHN0aWxsIHdoZXJlIHNoZSB3YXMsIGFuZCB3YWl0ZWQuV2hlbiB0aGUgcHJvY2Vzc2lvbiBjYW1lIG9wcG9zaXRl" |
418 | "IHRvIEFsaWNlLCB0aGV5IGFsbCBzdG9wcGVkIGFuZCBsb29rZWQgYXQgaGVyLCBhbmQgdGhlIFF1ZWVuIHNhaWQgc2V2ZXJlbHkgJ1dobyBpcy" |
419 | "B0aGlzPycgU2hlIHNhaWQgaXQgdG8gdGhlIEtuYXZlIG9mIEhlYXJ0cywgd2hvIG9ubHkgYm93ZWQgYW5kIHNtaWxlZCBpbiByZXBseS4nSWRp" |
420 | "b3QhJyBzYWlkIHRoZSBRdWVlbiwgdG9zc2luZyBoZXIgaGVhZCBpbXBhdGllbnRseTsgYW5kLCB0dXJuaW5nIHRvIEFsaWNlLCBzaGUgd2VudC" |
421 | "BvbiwgJ1doYXQncyB5b3VyIG5hbWUsIGNoaWxkPycnTXkgbmFtZSBpcyBBbGljZSwgc28gcGxlYXNlIHlvdXIgTWFqZXN0eSwnIHNhaWQgQWxp" |
422 | "Y2UgdmVyeSBwb2xpdGVseTsgYnV0IHNoZSBhZGRlZCwgdG8gaGVyc2VsZiwgJ1doeSwgdGhleSdyZSBvbmx5IGEgcGFjayBvZiBjYXJkcywgYW" |
423 | "Z0ZXIgYWxsLiBJIG5lZWRuJ3QgYmUgYWZyYWlkIG9mIHRoZW0hJydBbmQgd2hvIGFyZSB0aGVzZT8nIHNhaWQgdGhlIFF1ZWVuLCBwb2ludGlu" |
424 | "ZyB0byB0aGUgdGhyZWUgZ2FyZGVuZXJzIHdobyB3ZXJlIGx5aW5nIHJvdW5kIHRoZSByb3NldHJlZTsgZm9yLCB5b3Ugc2VlLCBhcyB0aGV5IH" |
425 | "dlcmUgbHlpbmcgb24gdGhlaXIgZmFjZXMsIGFuZCB0aGUgcGF0dGVybiBvbiB0aGVpciBiYWNrcyB3YXMgdGhlIHNhbWUgYXMgdGhlIHJlc3Qg" |
426 | "b2YgdGhlIHBhY2ssIHNoZSBjb3VsZCBub3QgdGVsbCB3aGV0aGVyIHRoZXkgd2VyZSBnYXJkZW5lcnMsIG9yIHNvbGRpZXJzLCBvciBjb3VydG" |
427 | "llcnMsIG9yIHRocmVlIG9mIGhlciBvd24gY2hpbGRyZW4uJ0hvdyBzaG91bGQgSSBrbm93Pycgc2FpZCBBbGljZSwgc3VycHJpc2VkIGF0IGhl" |
428 | "ciBvd24gY291cmFnZS4gJ0l0J3Mgbm8gYnVzaW5lc3Mgb2YgbWluZS4nVGhlIFF1ZWVuIHR1cm5lZCBjcmltc29uIHdpdGggZnVyeSwgYW5kLC" |
429 | "BhZnRlciBnbGFyaW5nIGF0IGhlciBmb3IgYSBtb21lbnQgbGlrZSBhIHdpbGQgYmVhc3QsIHNjcmVhbWVkICdPZmYgd2l0aCBoZXIgaGVhZCEg" |
430 | "T2Zm4oCUJydOb25zZW5zZSEnIHNhaWQgQWxpY2UsIHZlcnkgbG91ZGx5IGFuZCBkZWNpZGVkbHksIGFuZCB0aGUgUXVlZW4gd2FzIHNpbGVudC" |
431 | "5UaGUgS2luZyBsYWlkIGhpcyBoYW5kIHVwb24gaGVyIGFybSwgYW5kIHRpbWlkbHkgc2FpZCAnQ29uc2lkZXIsIG15IGRlYXI6IHNoZSBpcyBv" |
432 | "bmx5IGEgY2hpbGQhJ1RoZSBRdWVlbiB0dXJuZWQgYW5ncmlseSBhd2F5IGZyb20gaGltLCBhbmQgc2FpZCB0byB0aGUgS25hdmUgJ1R1cm4gdG" |
433 | "hlbSBvdmVyISdUaGUgS25hdmUgZGlkIHNvLCB2ZXJ5IGNhcmVmdWxseSwgd2l0aCBvbmUgZm9vdC4nR2V0IHVwIScgc2FpZCB0aGUgUXVlZW4s" |
434 | "IGluIGEgc2hyaWxsLCBsb3VkIHZvaWNlLCBhbmQgdGhlIHRocmVlIGdhcmRlbmVycyBpbnN0YW50bHkganVtcGVkIHVwLCBhbmQgYmVnYW4gYm" |
435 | "93aW5nIHRvIHRoZSBLaW5nLCB0aGUgUXVlZW4sIHRoZSByb3lhbCBjaGlsZHJlbiwgYW5kIGV2ZXJ5Ym9keSBlbHNlLidMZWF2ZSBvZmYgdGhh" |
436 | "dCEnIHNjcmVhbWVkIHRoZSBRdWVlbi4gJ1lvdSBtYWtlIG1lIGdpZGR5LicgQW5kIHRoZW4sIHR1cm5pbmcgdG8gdGhlIHJvc2UtdHJlZSwgc2" |
437 | "hlIHdlbnQgb24sICdXaGF0IGhhdmUgeW91IGJlZW4gZG9pbmcgaGVyZT8nJ01heSBpdCBwbGVhc2UgeW91ciBNYWplc3R5LCcgc2FpZCBUd28s" |
438 | "IGluIGEgdmVyeSBodW1ibGUgdG9uZSwgZ29pbmcgZG93biBvbiBvbmUga25lZSBhcyBoZSBzcG9rZSwgJ3dlIHdlcmUgdHJ5aW5n4oCUJydJIH" |
439 | "NlZSEnIHNhaWQgdGhlIFF1ZWVuLCB3aG8gaGFkIG1lYW53aGlsZSBiZWVuIGV4YW1pbmluZyB0aGUgcm9zZXMuICdPZmYgd2l0aCB0aGVpciBo" |
440 | "ZWFkcyEnIGFuZCB0aGUgcHJvY2Vzc2lvbiBtb3ZlZCBvbiwgdGhyZWUgb2YgdGhlIHNvbGRpZXJzIHJlbWFpbmluZyBiZWhpbmQgdG8gZXhlY3" |
441 | "V0ZSB0aGUgdW5mb3J0dW5hdGUgZ2FyZGVuZXJzLCB3aG8gcmFuIHRvIEFsaWNlIGZvciBwcm90ZWN0aW9uLidZb3Ugc2hhbid0IGJlIGJlaGVh" |
442 | "ZGVkIScgc2FpZCBBbGljZSwgYW5kIHNoZSBwdXQgdGhlbSBpbnRvIGEgbGFyZ2UgZmxvd2VyLXBvdCB0aGF0IHN0b29kIG5lYXIuIFRoZSB0aH" |
443 | "JlZSBzb2xkaWVycyB3YW5kZXJlZCBhYm91dCBmb3IgYSBtaW51dGUgb3IgdHdvLCBsb29raW5nIGZvciB0aGVtLCBhbmQgdGhlbiBxdWlldGx5" |
444 | "IG1hcmNoZWQgb2ZmIGFmdGVyIHRoZSBvdGhlcnMuJ0FyZSB0aGVpciBoZWFkcyBvZmY/" |
445 | "JyBzaG91dGVkIHRoZSBRdWVlbi4nVGhlaXIgaGVhZHMgYXJlIGdvbmUsIGlmIGl0IHBsZWFzZSB5b3VyIE1hamVzdHkhJyB0aGUgc29sZGllcn" |
446 | "Mgc2hvdXRlZCBpbiByZXBseS4nVGhhdCdzIHJpZ2h0IScgc2hvdXRlZCB0aGUgUXVlZW4uICdDYW4geW91IHBsYXkgY3JvcXVldD8nVGhlIHNv" |
447 | "bGRpZXJzIHdlcmUgc2lsZW50LCBhbmQgbG9va2VkIGF0IEFsaWNlLCBhcyB0aGUgcXVlc3Rpb24gd2FzIGV2aWRlbnRseSBtZWFudCBmb3IgaG" |
448 | "VyLidZZXMhJyBzaG91dGVkIEFsaWNlLidDb21lIG9uLCB0aGVuIScgcm9hcmVkIHRoZSBRdWVlbiwgYW5kIEFsaWNlIGpvaW5lZCB0aGUgcHJv" |
449 | "Y2Vzc2lvbiwgd29uZGVyaW5nIHZlcnkgbXVjaCB3aGF0IHdvdWxkIGhhcHBlbiBuZXh0LidJdCdz4oCUaXQncyBhIHZlcnkgZmluZSBkYXkhJy" |
450 | "BzYWlkIGEgdGltaWQgdm9pY2UgYXQgaGVyIHNpZGUuIFNoZSB3YXMgd2Fsa2luZyBieSB0aGUgV2hpdGUgUmFiYml0LCB3aG8gd2FzIHBlZXBp" |
451 | "bmcgYW54aW91c2x5IGludG8gaGVyIGZhY2UuJ1ZlcnksJyBzYWlkIEFsaWNlOiAn4oCUd2hlcmUncyB0aGUgRHVjaGVzcz8nJ0h1c2ghIEh1c2" |
452 | "ghJyBzYWlkIHRoZSBSYWJiaXQgaW4gYSBsb3csIGh1cnJpZWQgdG9uZS4gSGUgbG9va2VkIGFueGlvdXNseSBvdmVyIGhpcyBzaG91bGRlciBh" |
453 | "cyBoZSBzcG9rZSwgYW5kIHRoZW4gcmFpc2VkIGhpbXNlbGYgdXBvbiB0aXB0b2UsIHB1dCBoaXMgbW91dGggY2xvc2UgdG8gaGVyIGVhciwgYW" |
454 | "5kIHdoaXNwZXJlZCAnU2hlJ3MgdW5kZXIgc2VudGVuY2Ugb2YgZXhlY3V0aW9uLicnV2hhdCBmb3I/" |
455 | "JyBzYWlkIEFsaWNlLidEaWQgeW91IHNheSAiV2hhdCBhIHBpdHkhIj8nIHRoZSBSYWJiaXQgYXNrZWQuJ05vLCBJIGRpZG4ndCwnIHNhaWQgQW" |
456 | "xpY2U6ICdJIGRvbid0IHRoaW5rIGl0J3MgYXQgYWxsIGEgcGl0eS4gSSBzYWlkICJXaGF0IGZvcj8iJydTaGUgYm94ZWQgdGhlIFF1ZWVuJ3Mg" |
457 | "ZWFyc+" |
458 | "KAlCcgdGhlIFJhYmJpdCBiZWdhbi4gQWxpY2UgZ2F2ZSBhIGxpdHRsZSBzY3JlYW0gb2YgbGF1Z2h0ZXIuICdPaCwgaHVzaCEnIHRoZSBSYWJi" |
459 | "aXQgd2hpc3BlcmVkIGluIGEgZnJpZ2h0ZW5lZCB0b25lLiAnVGhlIFF1ZWVuIHdpbGwgaGVhciB5b3UhIFlvdSBzZWUsIHNoZSBjYW1lIHJhdG" |
460 | "hlciBsYXRlLCBhbmQgdGhlIFF1ZWVuIHNhaWTigJQnJ0dldCB0byB5b3VyIHBsYWNlcyEnIHNob3V0ZWQgdGhlIFF1ZWVuIGluIGEgdm9pY2Ug" |
461 | "b2YgdGh1bmRlciwgYW5kIHBlb3BsZSBiZWdhbiBydW5uaW5nIGFib3V0IGluIGFsbCBkaXJlY3Rpb25zLCB0dW1ibGluZyB1cCBhZ2FpbnN0IG" |
462 | "VhY2ggb3RoZXI7IGhvd2V2ZXIsIHRoZXkgZ290IHNldHRsZWQgZG93biBpbiBhIG1pbnV0ZSBvciB0d28sIGFuZCB0aGUgZ2FtZSBiZWdhbi4g" |
463 | "QWxpY2UgdGhvdWdodCBzaGUgaGFkIG5ldmVyIHNlZW4gc3VjaCBhIGN1cmlvdXMgY3JvcXVldC1ncm91bmQgaW4gaGVyIGxpZmU7IGl0IHdhcy" |
464 | "BhbGwgcmlkZ2VzIGFuZCBmdXJyb3dzOyB0aGUgYmFsbHMgd2VyZSBsaXZlIGhlZGdlaG9ncywgdGhlIG1hbGxldHMgbGl2ZSBmbGFtaW5nb2Vz" |
465 | "LCBhbmQgdGhlIHNvbGRpZXJzIGhhZCB0byBkb3VibGUgdGhlbXNlbHZlcyB1cCBhbmQgdG8gc3RhbmQgb24gdGhlaXIgaGFuZHMgYW5kIGZlZX" |
466 | "QsIHRvIG1ha2UgdGhlIGFyY2hlcy5UaGUgY2hpZWYgZGlmZmljdWx0eSBBbGljZSBmb3VuZCBhdCBmaXJzdCB3YXMgaW4gbWFuYWdpbmcgaGVy" |
467 | "IGZsYW1pbmdvOiBzaGUgc3VjY2VlZGVkIGluIGdldHRpbmcgaXRzIGJvZHkgdHVja2VkIGF3YXksIGNvbWZvcnRhYmx5IGVub3VnaCwgdW5kZX" |
468 | "IgaGVyIGFybSwgd2l0aCBpdHMgbGVncyBoYW5naW5nIGRvd24sIGJ1dCBnZW5lcmFsbHksIGp1c3QgYXMgc2hlIGhhZCBnb3QgaXRzIG5lY2sg" |
469 | "bmljZWx5IHN0cmFpZ2h0ZW5lZCBvdXQsIGFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSBibG93IHdpdGggaXRzIGhlYWQsIG" |
470 | "l0IHdvdWxkIHR3aXN0IGl0c2VsZiByb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZSwgd2l0aCBzdWNoIGEgcHV6emxlZCBleHByZXNzaW9u" |
471 | "IHRoYXQgc2hlIGNvdWxkIG5vdCBoZWxwIGJ1cnN0aW5nIG91dCBsYXVnaGluZzogYW5kIHdoZW4gc2hlIGhhZCBnb3QgaXRzIGhlYWQgZG93bi" |
472 | "wgYW5kIHdhcyBnb2luZyB0byBiZWdpbiBhZ2FpbiwgaXQgd2FzIHZlcnkgcHJvdm9raW5nIHRvIGZpbmQgdGhhdCB0aGUgaGVkZ2Vob2cgaGFk" |
473 | "IHVucm9sbGVkIGl0c2VsZiwgYW5kIHdhcyBpbiB0aGUgYWN0IG9mIGNyYXdsaW5nIGF3YXk6IGJlc2lkZXMgYWxsIHRoaXMsIHRoZXJlIHdhcy" |
474 | "BnZW5lcmFsbHkgYSByaWRnZSBvciBmdXJyb3cgaW4gdGhlIHdheSB3aGVyZXZlciBzaGUgd2FudGVkIHRvIHNlbmQgdGhlIGhlZGdlaG9nIHRv" |
475 | "LCBhbmQsIGFzIHRoZSBkb3VibGVkLXVwIHNvbGRpZXJzIHdlcmUgYWx3YXlzIGdldHRpbmcgdXAgYW5kIHdhbGtpbmcgb2ZmIHRvIG90aGVyIH" |
476 | "BhcnRzIG9mIHRoZSBncm91bmQsIEFsaWNlIHNvb24gY2FtZSB0byB0aGUgY29uY2x1c2lvbiB0aGF0IGl0IHdhcyBhIHZlcnkgZGlmZmljdWx0" |
477 | "IGdhbWUgaW5kZWVkLlRoZSBwbGF5ZXJzIGFsbCBwbGF5ZWQgYXQgb25jZSB3aXRob3V0IHdhaXRpbmcgZm9yIHR1cm5zLCBxdWFycmVsbGluZy" |
478 | "BhbGwgdGhlIHdoaWxlLCBhbmQgZmlnaHRpbmcgZm9yIHRoZSBoZWRnZWhvZ3M7IGFuZCBpbiBhIHZlcnkgc2hvcnQgdGltZSB0aGUgUXVlZW4g" |
479 | "d2FzIGluIGEgZnVyaW91cyBwYXNzaW9uLCBhbmQgd2VudCBzdGFtcGluZyBhYm91dCwgYW5kIHNob3V0aW5nICdPZmYgd2l0aCBoaXMgaGVhZC" |
480 | "EnIG9yICdPZmYgd2l0aCBoZXIgaGVhZCEnIGFib3V0IG9uY2UgaW4gYSBtaW51dGUuQWxpY2UgYmVnYW4gdG8gZmVlbCB2ZXJ5IHVuZWFzeTog" |
481 | "dG8gYmUgc3VyZSwgc2hlIGhhZCBub3QgYXMgeWV0IGhhZCBhbnkgZGlzcHV0ZSB3aXRoIHRoZSBRdWVlbiwgYnV0IHNoZSBrbmV3IHRoYXQgaX" |
482 | "QgbWlnaHQgaGFwcGVuIGFueSBtaW51dGUsICdhbmQgdGhlbiwnIHRob3VnaHQgc2hlLCAnd2hhdCB3b3VsZCBiZWNvbWUgb2YgbWU/" |
483 | "IFRoZXkncmUgZHJlYWRmdWxseSBmb25kIG9mIGJlaGVhZGluZyBwZW9wbGUgaGVyZTsgdGhlIGdyZWF0IHdvbmRlciBpcywgdGhhdCB0aGVyZS" |
484 | "dzIGFueSBvbmUgbGVmdCBhbGl2ZSEnU2hlIHdhcyBsb29raW5nIGFib3V0IGZvciBzb21lIHdheSBvZiBlc2NhcGUsIGFuZCB3b25kZXJpbmcg" |
485 | "d2hldGhlciBzaGUgY291bGQgZ2V0IGF3YXkgd2l0aG91dCBiZWluZyBzZWVuLCB3aGVuIHNoZSBub3RpY2VkIGEgY3VyaW91cyBhcHBlYXJhbm" |
486 | "NlIGluIHRoZSBhaXI6IGl0IHB1enpsZWQgaGVyIHZlcnkgbXVjaCBhdCBmaXJzdCwgYnV0LCBhZnRlciB3YXRjaGluZyBpdCBhIG1pbnV0ZSBv" |
487 | "ciB0d28sIHNoZSBtYWRlIGl0IG91dCB0byBiZSBhIGdyaW4sIGFuZCBzaGUgc2FpZCB0byBoZXJzZWxmICdJdCdzIHRoZSBDaGVzaGlyZSBDYX" |
488 | "Q6IG5vdyBJIHNoYWxsIGhhdmUgc29tZWJvZHkgdG8gdGFsayB0by4nJ0hvdyBhcmUgeW91IGdldHRpbmcgb24/" |
489 | "JyBzYWlkIHRoZSBDYXQsIGFzIHNvb24gYXMgdGhlcmUgd2FzIG1vdXRoIGVub3VnaCBmb3IgaXQgdG8gc3BlYWsgd2l0aC5BbGljZSB3YWl0ZW" |
490 | "QgdGlsbCB0aGUgZXllcyBhcHBlYXJlZCwgYW5kIHRoZW4gbm9kZGVkLiAnSXQncyBubyB1c2Ugc3BlYWtpbmcgdG8gaXQsJyBzaGUgdGhvdWdo" |
491 | "dCwgJ3RpbGwgaXRzIGVhcnMgaGF2ZSBjb21lLCBvciBhdCBsZWFzdCBvbmUgb2YgdGhlbS4nIEluIGFub3RoZXIgbWludXRlIHRoZSB3aG9sZS" |
492 | "BoZWFkIGFwcGVhcmVkLCBhbmQgdGhlbiBBbGljZSBwdXQgZG93biBoZXIgZmxhbWluZ28sIGFuZCBiZWdhbiBhbiBhY2NvdW50IG9mIHRoZSBn" |
493 | "YW1lLCBmZWVsaW5nIHZlcnkgZ2xhZCBzaGUgaGFkIHNvbWVvbmUgdG8gbGlzdGVuIHRvIGhlci4gVGhlIENhdCBzZWVtZWQgdG8gdGhpbmsgdG" |
494 | "hhdCB0aGVyZSB3YXMgZW5vdWdoIG9mIGl0IG5vdyBpbiBzaWdodCwgYW5kIG5vIG1vcmUgb2YgaXQgYXBwZWFyZWQuJ0kgZG9uJ3QgdGhpbmsg" |
495 | "dGhleSBwbGF5IGF0IGFsbCBmYWlybHksJyBBbGljZSBiZWdhbiwgaW4gcmF0aGVyIGEgY29tcGxhaW5pbmcgdG9uZSwgJ2FuZCB0aGV5IGFsbC" |
496 | "BxdWFycmVsIHNvIGRyZWFkZnVsbHkgb25lIGNhbid0IGhlYXIgb25lc2VsZiBzcGVha+" |
497 | "KAlGFuZCB0aGV5IGRvbid0IHNlZW0gdG8gaGF2ZSBhbnkgcnVsZXMgaW4gcGFydGljdWxhcjsgYXQgbGVhc3QsIGlmIHRoZXJlIGFyZSwgbm9i" |
498 | "b2R5IGF0dGVuZHMgdG8gdGhlbeKAlGFuZCB5b3UndmUgbm8gaWRlYSBob3cgY29uZnVzaW5nIGl0IGlzIGFsbCB0aGUgdGhpbmdzIGJlaW5nIG" |
499 | "FsaXZlOyBmb3IgaW5zdGFuY2UsIHRoZXJlJ3MgdGhlIGFyY2ggSSd2ZSBnb3QgdG8gZ28gdGhyb3VnaCBuZXh0IHdhbGtpbmcgYWJvdXQgYXQg" |
500 | "dGhlIG90aGVyIGVuZCBvZiB0aGUgZ3JvdW5k4oCUYW5kIEkgc2hvdWxkIGhhdmUgY3JvcXVldGVkIHRoZSBRdWVlbidzIGhlZGdlaG9nIGp1c3" |
501 | "Qgbm93LCBvbmx5IGl0IHJhbiBhd2F5IHdoZW4gaXQgc2F3IG1pbmUgY29taW5nIScnSG93IGRvIHlvdSBsaWtlIHRoZSBRdWVlbj8nIHNhaWQg" |
502 | "dGhlIENhdCBpbiBhIGxvdyB2b2ljZS4nTm90IGF0IGFsbCwnIHNhaWQgQWxpY2U6ICdzaGUncyBzbyBleHRyZW1lbHnigJQnIEp1c3QgdGhlbi" |
503 | "BzaGUgbm90aWNlZCB0aGF0IHRoZSBRdWVlbiB3YXMgY2xvc2UgYmVoaW5kIGhlciwgbGlzdGVuaW5nOiBzbyBzaGUgd2VudCBvbiwgJ+" |
504 | "KAlGxpa2VseSB0byB3aW4sIHRoYXQgaXQncyBoYXJkbHkgd29ydGggd2hpbGUgZmluaXNoaW5nIHRoZSBnYW1lLidUaGUgUXVlZW4gc21pbGVk" |
505 | "IGFuZCBwYXNzZWQgb24uJ1dobyBhcmUgeW91IHRhbGtpbmcgdG8/" |
506 | "JyBzYWlkIHRoZSBLaW5nLCBnb2luZyB1cCB0byBBbGljZSwgYW5kIGxvb2tpbmcgYXQgdGhlIENhdCdzIGhlYWQgd2l0aCBncmVhdCBjdXJpb3" |
507 | "NpdHkuJ0l0J3MgYSBmcmllbmQgb2YgbWluZeKAlGEgQ2hlc2hpcmUgQ2F0LCcgc2FpZCBBbGljZTogJ2FsbG93IG1lIHRvIGludHJvZHVjZSBp" |
508 | "dC4nJ0kgZG9uJ3QgbGlrZSB0aGUgbG9vayBvZiBpdCBhdCBhbGwsJyBzYWlkIHRoZSBLaW5nOiAnaG93ZXZlciwgaXQgbWF5IGtpc3MgbXkgaG" |
509 | "FuZCBpZiBpdCBsaWtlcy4nJ0knZCByYXRoZXIgbm90LCcgdGhlIENhdCByZW1hcmtlZC4nRG9uJ3QgYmUgaW1wZXJ0aW5lbnQsJyBzYWlkIHRo" |
510 | "ZSBLaW5nLCAnYW5kIGRvbid0IGxvb2sgYXQgbWUgbGlrZSB0aGF0IScgSGUgZ290IGJlaGluZCBBbGljZSBhcyBoZSBzcG9rZS4nQSBjYXQgbW" |
511 | "F5IGxvb2sgYXQgYSBraW5nLCcgc2FpZCBBbGljZS4gJ0kndmUgcmVhZCB0aGF0IGluIHNvbWUgYm9vaywgYnV0IEkgZG9uJ3QgcmVtZW1iZXIg" |
512 | "d2hlcmUuJydXZWxsLCBpdCBtdXN0IGJlIHJlbW92ZWQsJyBzYWlkIHRoZSBLaW5nIHZlcnkgZGVjaWRlZGx5LCBhbmQgaGUgY2FsbGVkIHRoZS" |
513 | "BRdWVlbiwgd2hvIHdhcyBwYXNzaW5nIGF0IHRoZSBtb21lbnQsICdNeSBkZWFyISBJIHdpc2ggeW91IHdvdWxkIGhhdmUgdGhpcyBjYXQgcmVt" |
514 | "b3ZlZCEnVGhlIFF1ZWVuIGhhZCBvbmx5IG9uZSB3YXkgb2Ygc2V0dGxpbmcgYWxsIGRpZmZpY3VsdGllcywgZ3JlYXQgb3Igc21hbGwuICdPZm" |
515 | "Ygd2l0aCBoaXMgaGVhZCEnIHNoZSBzYWlkLCB3aXRob3V0IGV2ZW4gbG9va2luZyByb3VuZC4nSSdsbCBmZXRjaCB0aGUgZXhlY3V0aW9uZXIg" |
516 | "bXlzZWxmLCcgc2FpZCB0aGUgS2luZyBlYWdlcmx5LCBhbmQgaGUgaHVycmllZCBvZmYuQWxpY2UgdGhvdWdodCBzaGUgbWlnaHQgYXMgd2VsbC" |
517 | "BnbyBiYWNrLCBhbmQgc2VlIGhvdyB0aGUgZ2FtZSB3YXMgZ29pbmcgb24sIGFzIHNoZSBoZWFyZCB0aGUgUXVlZW4ncyB2b2ljZSBpbiB0aGUg" |
518 | "ZGlzdGFuY2UsIHNjcmVhbWluZyB3aXRoIHBhc3Npb24uIFNoZSBoYWQgYWxyZWFkeSBoZWFyZCBoZXIgc2VudGVuY2UgdGhyZWUgb2YgdGhlIH" |
519 | "BsYXllcnMgdG8gYmUgZXhlY3V0ZWQgZm9yIGhhdmluZyBtaXNzZWQgdGhlaXIgdHVybnMsIGFuZCBzaGUgZGlkIG5vdCBsaWtlIHRoZSBsb29r" |
520 | "IG9mIHRoaW5ncyBhdCBhbGwsIGFzIHRoZSBnYW1lIHdhcyBpbiBzdWNoIGNvbmZ1c2lvbiB0aGF0IHNoZSBuZXZlciBrbmV3IHdoZXRoZXIgaX" |
521 | "Qgd2FzIGhlciB0dXJuIG9yIG5vdC4gU28gc2hlIHdlbnQgaW4gc2VhcmNoIG9mIGhlciBoZWRnZWhvZy5UaGUgaGVkZ2Vob2cgd2FzIGVuZ2Fn" |
522 | "ZWQgaW4gYSBmaWdodCB3aXRoIGFub3RoZXIgaGVkZ2Vob2csIHdoaWNoIHNlZW1lZCB0byBBbGljZSBhbiBleGNlbGxlbnQgb3Bwb3J0dW5pdH" |
523 | "kgZm9yIGNyb3F1ZXRpbmcgb25lIG9mIHRoZW0gd2l0aCB0aGUgb3RoZXI6IHRoZSBvbmx5IGRpZmZpY3VsdHkgd2FzLCB0aGF0IGhlciBmbGFt" |
524 | "aW5nbyB3YXMgZ29uZSBhY3Jvc3MgdG8gdGhlIG90aGVyIHNpZGUgb2YgdGhlIGdhcmRlbiwgd2hlcmUgQWxpY2UgY291bGQgc2VlIGl0IHRyeW" |
525 | "luZyBpbiBhIGhlbHBsZXNzIHNvcnQgb2Ygd2F5IHRvIGZseSB1cCBpbnRvIGEgdHJlZS5CeSB0aGUgdGltZSBzaGUgaGFkIGNhdWdodCB0aGUg" |
526 | "ZmxhbWluZ28gYW5kIGJyb3VnaHQgaXQgYmFjaywgdGhlIGZpZ2h0IHdhcyBvdmVyLCBhbmQgYm90aCB0aGUgaGVkZ2Vob2dzIHdlcmUgb3V0IG" |
527 | "9mIHNpZ2h0OiAnYnV0IGl0IGRvZXNuJ3QgbWF0dGVyIG11Y2gsJyB0aG91Z2h0IEFsaWNlLCAnYXMgYWxsIHRoZSBhcmNoZXMgYXJlIGdvbmUg" |
528 | "ZnJvbSB0aGlzIHNpZGUgb2YgdGhlIGdyb3VuZC4nIFNvIHNoZSB0dWNrZWQgaXQgYXdheSB1bmRlciBoZXIgYXJtLCB0aGF0IGl0IG1pZ2h0IG" |
529 | "5vdCBlc2NhcGUgYWdhaW4sIGFuZCB3ZW50IGJhY2sgZm9yIGEgbGl0dGxlIG1vcmUgY29udmVyc2F0aW9uIHdpdGggaGVyIGZyaWVuZC5XaGVu" |
530 | "IHNoZSBnb3QgYmFjayB0byB0aGUgQ2hlc2hpcmUgQ2F0LCBzaGUgd2FzIHN1cnByaXNlZCB0byBmaW5kIHF1aXRlIGEgbGFyZ2UgY3Jvd2QgY2" |
531 | "9sbGVjdGVkIHJvdW5kIGl0OiB0aGVyZSB3YXMgYSBkaXNwdXRlIGdvaW5nIG9uIGJldHdlZW4gdGhlIGV4ZWN1dGlvbmVyLCB0aGUgS2luZywg" |
532 | "YW5kIHRoZSBRdWVlbiwgd2hvIHdlcmUgYWxsIHRhbGtpbmcgYXQgb25jZSwgd2hpbGUgYWxsIHRoZSByZXN0IHdlcmUgcXVpdGUgc2lsZW50LC" |
533 | "BhbmQgbG9va2VkIHZlcnkgdW5jb21mb3J0YWJsZS5UaGUgbW9tZW50IEFsaWNlIGFwcGVhcmVkLCBzaGUgd2FzIGFwcGVhbGVkIHRvIGJ5IGFs" |
534 | "bCB0aHJlZSB0byBzZXR0bGUgdGhlIHF1ZXN0aW9uLCBhbmQgdGhleSByZXBlYXRlZCB0aGVpciBhcmd1bWVudHMgdG8gaGVyLCB0aG91Z2gsIG" |
535 | "FzIHRoZXkgYWxsIHNwb2tlIGF0IG9uY2UsIHNoZSBmb3VuZCBpdCB2ZXJ5IGhhcmQgaW5kZWVkIHRvIG1ha2Ugb3V0IGV4YWN0bHkgd2hhdCB0" |
536 | "aGV5IHNhaWQuVGhlIGV4ZWN1dGlvbmVyJ3MgYXJndW1lbnQgd2FzLCB0aGF0IHlvdSBjb3VsZG4ndCBjdXQgb2ZmIGEgaGVhZCB1bmxlc3MgdG" |
537 | "hlcmUgd2FzIGEgYm9keSB0byBjdXQgaXQgb2ZmIGZyb206IHRoYXQgaGUgaGFkIG5ldmVyIGhhZCB0byBkbyBzdWNoIGEgdGhpbmcgYmVmb3Jl" |
538 | "LCBhbmQgaGUgd2Fzbid0IGdvaW5nIHRvIGJlZ2luIGF0IGhpcyB0aW1lIG9mIGxpZmUuVGhlIEtpbmcncyBhcmd1bWVudCB3YXMsIHRoYXQgYW" |
539 | "55dGhpbmcgdGhhdCBoYWQgYSBoZWFkIGNvdWxkIGJlIGJlaGVhZGVkLCBhbmQgdGhhdCB5b3Ugd2VyZW4ndCB0byB0YWxrIG5vbnNlbnNlLlRo" |
540 | "ZSBRdWVlbidzIGFyZ3VtZW50IHdhcywgdGhhdCBpZiBzb21ldGhpbmcgd2Fzbid0IGRvbmUgYWJvdXQgaXQgaW4gbGVzcyB0aGFuIG5vIHRpbW" |
541 | "Ugc2hlJ2QgaGF2ZSBldmVyeWJvZHkgZXhlY3V0ZWQsIGFsbCByb3VuZC4gKEl0IHdhcyB0aGlzIGxhc3QgcmVtYXJrIHRoYXQgaGFkIG1hZGUg" |
542 | "dGhlIHdob2xlIHBhcnR5IGxvb2sgc28gZ3JhdmUgYW5kIGFueGlvdXMuKUFsaWNlIGNvdWxkIHRoaW5rIG9mIG5vdGhpbmcgZWxzZSB0byBzYX" |
543 | "kgYnV0ICdJdCBiZWxvbmdzIHRvIHRoZSBEdWNoZXNzOiB5b3UnZCBiZXR0ZXIgYXNrIGhlciBhYm91dCBpdC4nJ1NoZSdzIGluIHByaXNvbiwn" |
544 | "IHRoZSBRdWVlbiBzYWlkIHRvIHRoZSBleGVjdXRpb25lcjogJ2ZldGNoIGhlciBoZXJlLicgQW5kIHRoZSBleGVjdXRpb25lciB3ZW50IG9mZi" |
545 | "BsaWtlIGFuIGFycm93LlRoZSBDYXQncyBoZWFkIGJlZ2FuIGZhZGluZyBhd2F5IHRoZSBtb21lbnQgaGUgd2FzIGdvbmUsIGFuZCwgYnkgdGhl" |
546 | "IHRpbWUgaGUgaGFkIGNvbWUgYmFjayB3aXRoIHRoZSBEdWNoZXNzLCBpdCBoYWQgZW50aXJlbHkgZGlzYXBwZWFyZWQ7IHNvIHRoZSBLaW5nIG" |
547 | "FuZCB0aGUgZXhlY3V0aW9uZXIgcmFuIHdpbGRseSB1cCBhbmQgZG93biBsb29raW5nIGZvciBpdCwgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIHBh" |
548 | "cnR5IHdlbnQgYmFjayB0byB0aGUgZ2FtZS4=" ; |
549 | using it_base64_t = bai::base64_from_binary<bai::transform_width<std::string::const_iterator, 6, 8>>; |
550 | |
551 | auto writePaddChars = (3 - input.length() % 3) % 3; |
552 | std::string base64(it_base64_t(input.begin()), it_base64_t(input.end())); |
553 | base64.append(writePaddChars, '='); |
554 | assert(base64 == output); |
555 | return 0; |
556 | } |
557 | #elif 0 |
558 | |
559 | #include <memory> |
560 | #include <sstream> |
561 | |
562 | #include <boost/archive/text_iarchive.hpp> |
563 | #include <boost/archive/text_oarchive.hpp> |
564 | #include <boost/serialization/shared_ptr.hpp> |
565 | |
566 | struct S |
567 | { |
568 | int i; |
569 | char c; |
570 | |
571 | template <class Archive> |
572 | void serialize(Archive & ar, const unsigned int version) |
573 | { |
574 | ar & i; |
575 | ar & c; |
576 | } |
577 | }; |
578 | |
579 | int main() |
580 | { |
581 | const auto s0 = std::make_shared<S>(); |
582 | s0->i = 42; |
583 | s0->c = 'c'; |
584 | |
585 | std::stringstream ss; |
586 | |
587 | { |
588 | boost::archive::text_oarchive oa(ss); |
589 | oa << s0; |
590 | } |
591 | |
592 | std::shared_ptr<S> s1; |
593 | { |
594 | boost::archive::text_iarchive ia(ss); |
595 | ia >> s1; |
596 | } |
597 | |
598 | return 0; |
599 | } |
600 | |
601 | #elif 0 |
602 | #include <boost/archive/binary_iarchive.hpp> |
603 | #include <boost/serialization/vector.hpp> |
604 | #include <sstream> |
605 | #include <vector> |
606 | |
607 | void f() |
608 | { |
609 | std::stringstream iss; |
610 | boost::archive::binary_iarchive ar(iss); |
611 | std::vector<int> out; |
612 | ar >> out; |
613 | } |
614 | |
615 | int main(int argc, char* argv[]) |
616 | { |
617 | return 0; |
618 | } |
619 | |
620 | #include <boost/archive/xml_oarchive.hpp> |
621 | #include <boost/archive/xml_iarchive.hpp> |
622 | #include <boost/archive/detail/archive_serializer_map.hpp> |
623 | #include <boost/archive/impl/archive_serializer_map.ipp> |
624 | #include <boost/archive/impl/basic_xml_iarchive.ipp> |
625 | #include <boost/archive/impl/xml_iarchive_impl.ipp> |
626 | #include <boost/serialization/nvp.hpp> |
627 | #include <limits> |
628 | #include <fstream> |
629 | |
630 | class xml_iarchive_nan : |
631 | public boost::archive::xml_iarchive_impl<xml_iarchive_nan> |
632 | { |
633 | protected: |
634 | friend class boost::archive::detail::interface_iarchive<xml_iarchive_nan>; |
635 | friend class boost::archive::detail::common_iarchive<xml_iarchive_nan>; |
636 | friend class boost::archive::basic_xml_iarchive<xml_iarchive_nan>; |
637 | friend class boost::archive::load_access; |
638 | |
639 | using boost::archive::xml_iarchive_impl<xml_iarchive_nan>::load; |
640 | void load(double & t) |
641 | { |
642 | char c='0'; |
643 | if(!is.fail()) |
644 | { |
645 | c=is.peek(); |
646 | if(c!='n') |
647 | { |
648 | boost::archive::xml_iarchive_impl<xml_iarchive_nan>::load(t); |
649 | } |
650 | else |
651 | { |
652 | char c1='0',c2='0'; |
653 | is.get(c).get(c1).get(c2); |
654 | if(is.fail()||(!((c=='n')&&(c1=='a')&&(c2=='n')))) |
655 | boost::serialization::throw_exception( |
656 | boost::archive::archive_exception( |
657 | boost::archive::archive_exception::input_stream_error)); |
658 | else |
659 | t=std::numeric_limits<double>::quiet_NaN(); |
660 | } |
661 | } |
662 | else |
663 | boost::serialization::throw_exception( |
664 | boost::archive::archive_exception(boost::archive::archive_exception::input_stream_error)); |
665 | } |
666 | |
667 | public: |
668 | xml_iarchive_nan(std::istream & is, unsigned int flags = 0) : |
669 | boost::archive::xml_iarchive_impl<xml_iarchive_nan>(is, flags) |
670 | {} |
671 | ~xml_iarchive_nan(){}; |
672 | }; |
673 | |
674 | BOOST_SERIALIZATION_REGISTER_ARCHIVE(xml_iarchive_nan) |
675 | |
676 | namespace boost |
677 | { |
678 | namespace archive |
679 | { |
680 | template class detail::archive_serializer_map<xml_iarchive_nan>; |
681 | template class detail::interface_iarchive<xml_iarchive_nan>; |
682 | template class detail::common_iarchive<xml_iarchive_nan>; |
683 | template class basic_xml_iarchive<xml_iarchive_nan>; |
684 | template class xml_iarchive_impl<xml_iarchive_nan>; |
685 | |
686 | } |
687 | } |
688 | |
689 | int main(int argc, char** argv) |
690 | { |
691 | double value=0.0; |
692 | std::ifstream ifile("./somefile.xml" ); |
693 | xml_iarchive_nan ia(ifile); |
694 | ia>>BOOST_SERIALIZATION_NVP(value); |
695 | } |
696 | |
697 | #elif 0 |
698 | // submitted as https://github.com/boostorg/serialization/issues/154 |
699 | |
700 | #include <boost/archive/text_iarchive.hpp> |
701 | #include <boost/archive/text_oarchive.hpp> |
702 | |
703 | #include <boost/serialization/vector.hpp> |
704 | #include <boost/serialization/string.hpp> |
705 | |
706 | #include <iostream> |
707 | #include <sstream> |
708 | #include <cassert> |
709 | |
710 | struct Tracked { |
711 | std::string x; |
712 | Tracked(std::string s) : x(s) {} |
713 | Tracked() : x("tracked" ){} |
714 | template <class A> void serialize(A& ar, unsigned int ) { |
715 | ar & x; |
716 | } |
717 | }; |
718 | |
719 | struct Main { |
720 | Tracked t_before; |
721 | Tracked* t_pointer; |
722 | Tracked t_after; |
723 | Main() : t_before("before" ), t_pointer(0), t_after("after" ) {} |
724 | template <class A> void serialize(A& ar, unsigned int ) { |
725 | ar |
726 | & t_before |
727 | & t_pointer |
728 | & t_after |
729 | ; |
730 | } |
731 | }; |
732 | |
733 | #define CHECK_EQUAL(X,Y) assert(X==Y) |
734 | #define REQUIRE_EQUAL(X,Y) CHECK_EQUAL(X,Y) |
735 | int main(int argc, char *argv[]) |
736 | { |
737 | typedef std::vector<Main> Mains; |
738 | |
739 | std::stringstream ss; |
740 | |
741 | { |
742 | Mains ms; |
743 | ms.push_back( Main()); |
744 | ms.push_back( Main()); |
745 | ms.back().t_pointer = ms.front().t_pointer = new Tracked; |
746 | |
747 | REQUIRE_EQUAL( ms.size(), 2); |
748 | CHECK_EQUAL( ms[0].t_pointer, ms[1].t_pointer ); |
749 | CHECK_EQUAL( ms[0].t_pointer->x, "tracked" ); |
750 | |
751 | boost::archive::text_oarchive oa(ss); |
752 | oa << ms; |
753 | |
754 | delete ms.back().t_pointer; |
755 | } |
756 | |
757 | std::cout << ss.str() << std::endl; |
758 | |
759 | { |
760 | Mains ms; |
761 | boost::archive::text_iarchive ia(ss); |
762 | ia >> ms; |
763 | |
764 | REQUIRE_EQUAL( ms.size(), 2); |
765 | CHECK_EQUAL( ms[0].t_pointer, ms[1].t_pointer ); |
766 | CHECK_EQUAL( ms[0].t_pointer->x, "tracked" ); |
767 | } |
768 | |
769 | return 0; |
770 | } |
771 | |
772 | #elif 0 |
773 | |
774 | // boost::variant not correctly serialized when reusing the memory location #203 |
775 | #include <boost/archive/text_iarchive.hpp> |
776 | #include <boost/archive/text_oarchive.hpp> |
777 | #include <boost/serialization/serialization.hpp> |
778 | #include <boost/serialization/variant.hpp> |
779 | |
780 | int main() { |
781 | boost::variant<int> variant = 1; |
782 | |
783 | // write it two times |
784 | std::stringstream ss; |
785 | boost::archive::text_oarchive oa(ss); |
786 | oa << make_nvp("var1" , variant); |
787 | oa << make_nvp("var2" , variant); |
788 | ss.flush(); |
789 | |
790 | // read it two times |
791 | boost::variant<int> v1; |
792 | boost::variant<int> v2; |
793 | boost::archive::text_iarchive ia(ss); |
794 | ia >> boost::serialization::make_nvp("var1" , v1); |
795 | ia >> boost::serialization::make_nvp("var2" , v2); |
796 | |
797 | assert(boost::get<int>(v1) == 1); |
798 | assert(boost::get<int>(v2) == 1); // Fails: v2 is actually zero |
799 | } |
800 | |
801 | #else |
802 | |
803 | #include <boost/serialization/set.hpp> |
804 | |
805 | int main(int argc, char* argv[]) |
806 | { |
807 | return 0; |
808 | } |
809 | #endif |
810 | |