LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
daf_base
11.0+1
include
lsst
daf
base
Persistable.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
25
#ifndef LSST_DAF_BASE_PERSISTABLE_H
26
#define LSST_DAF_BASE_PERSISTABLE_H
27
50
#include <boost/shared_ptr.hpp>
51
#include <typeinfo>
52
53
namespace
lsst {
54
namespace
daf {
55
namespace
base {
56
57
// Forward declarations.
58
class
Persistable;
59
60
}
// namespace lsst::daf::base
61
62
namespace
persistence {
63
// Template global function used to connect with boost::serialization.
64
// Definition is in daf/persistence/FormatterImpl.h, but is not needed by
65
// Persistable clients, only Formatter subclasses.
66
template
<
class
Form,
class
Archive>
67
void
delegateSerialize
(Archive& ar,
unsigned
int
const
version,
68
lsst::daf::base::Persistable
* persistable);
69
70
}
// namespace lsst::daf::persistence
71
72
namespace
base {
73
74
class
Persistable
{
75
public
:
76
typedef
boost::shared_ptr<Persistable>
Ptr
;
77
78
Persistable
(
void
);
79
virtual
~Persistable
(
void
);
80
85
template
<
class
Archive>
86
void
serialize
(Archive& ,
unsigned
int
const
) { }
87
};
88
98
#define LSST_PERSIST_FORMATTER(formatter...) \
99
friend class boost::serialization::access; \
100
friend class formatter; \
101
template <class Archive> \
102
void serialize(Archive& ar, unsigned int const version) { \
103
lsst::daf::persistence::delegateSerialize<formatter, Archive>(ar, version, this); \
104
}
105
106
}}}
// namespace lsst::daf::base
107
108
// Forward declaration of the boost::serialization::access class.
109
namespace
boost {
110
namespace
serialization {
111
class
access;
112
}}
// namespace boost::serialization
113
114
#endif
lsst::daf::base::Persistable::~Persistable
virtual ~Persistable(void)
Definition:
Persistable.cc:51
lsst::daf::base::Persistable::serialize
void serialize(Archive &, unsigned int const)
Definition:
Persistable.h:86
lsst::daf::base::Persistable::Ptr
boost::shared_ptr< Persistable > Ptr
Definition:
Persistable.h:76
lsst::daf::base::Persistable::Persistable
Persistable(void)
Definition:
Persistable.cc:46
lsst::daf::base::Persistable
Base class for all persistable classes.
Definition:
Persistable.h:74
lsst::daf::persistence::delegateSerialize
void delegateSerialize(Archive &ar, unsigned int const version, lsst::daf::base::Persistable *persistable)
Definition:
FormatterImpl.h:58
Generated on Thu Sep 24 2015 02:29:16 for LSSTApplications by
1.8.5