| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Два boost::serialization в одном классе |
| Автор: georain 3.1.2008, 05:29 |
| Есть набор классов, их надо сериализовать для записи на диск, а также сериализовать для отправки по сети, причём используются разные поля. Хотелось бы использовать boost::serialization, но я что-то не соображу как там это можно сделать. |
| Автор: archimed7592 3.1.2008, 10:47 |
| Боюсь, что никак. Сериализация(как технология) подразумевает единое представление одного и того же объекта. Можно воспользоваться proxy-классом, чтобы организовать выбор метода сериализации, но это решение не универсально... |
| Автор: JackYF 3.1.2008, 10:49 |
| Автор: Любитель 3.1.2008, 18:51 |
| Какая-то всё-таки странная ситуация... Если ты можешь сериализовать поля a, b или c, d => они взаимозаменяемы... Можешь конкретно показать класс (декларейшн) и объяснить, что ты хочешь получить при сериализации? |
| Автор: Alek86 3.1.2008, 19:21 |
| кидать по сети нужно далеко не то, что сохранять на диск к примеру |
| Автор: Любитель 3.1.2008, 19:24 |
Всмысле? Почему? Не ту информацию или не в том виде? За последнее - согласен, а вот первое спорно... Если это не "односторонняя сериализация" (просто импорт). |
| Автор: archimed7592 3.1.2008, 20:55 |
Значит паттерн "сериализация" здесь не подходит и не нужно изобретать себе сложности. Если мне нужно сохранить на диск два числа, а по сети послать их сумму, то я так и сделаю |
| Автор: Alek86 3.1.2008, 21:04 |
| ну к примеру, если это обычный сервер с защитой, то некоторые данные (как пароль) просто недопустимо по сети высылать. думаю, "в жизни" подо бные случаи могут быть кстати, это уж особо к теме и не относится ) |
| Автор: georain 4.1.2008, 16:32 |
| Есть клиент-серверное приложение, и там и там есть одинаковое дерево классов, но у серверных классов есть дополнительные поля, которые клиенту отправлять не нужно, необходимые для внутренней работы сервера. При выключении сервера все объекты классов записываются на диск полностью, а при работе с клиентом синхронизуется только часть полей. |
| Автор: Lazin 4.1.2008, 16:43 | ||
а вот так не вариант сделать?
можно например сериализовать в xml, а его уже слать по сети или сохранять |
| Автор: Любитель 4.1.2008, 17:05 |
| И всё-таки - можно один конкретный пример? И такой вопрос - при работе с клиентом ты только отправляешь данные? Не получашешь, что ли те же объекты (тех же классов)? И, если получаешь - откуда у тебя берутся "дополнительные" поля? Решения возможны различные - желательно всё же описать ситуацию подробней |