aimsdata 6.0.0
Neuroimaging data handling
pheader.h
Go to the documentation of this file.
1/* This software and supporting documentation are distributed by
2 * Institut Federatif de Recherche 49
3 * CEA/NeuroSpin, Batiment 145,
4 * 91191 Gif-sur-Yvette cedex
5 * France
6 *
7 * This software is governed by the CeCILL-B license under
8 * French law and abiding by the rules of distribution of free software.
9 * You can use, modify and/or redistribute the software under the
10 * terms of the CeCILL-B license as circulated by CEA, CNRS
11 * and INRIA at the following URL "http://www.cecill.info".
12 *
13 * As a counterpart to the access to the source code and rights to copy,
14 * modify and redistribute granted by the license, users are provided only
15 * with a limited warranty and the software's author, the holder of the
16 * economic rights, and the successive licensors have only limited
17 * liability.
18 *
19 * In this respect, the user's attention is drawn to the risks associated
20 * with loading, using, modifying and/or developing or reproducing the
21 * software by the user in light of its specific status of free software,
22 * that may mean that it is complicated to manipulate, and that also
23 * therefore means that it is reserved for developers and experienced
24 * professionals having in-depth computer knowledge. Users are therefore
25 * encouraged to load and test the software's suitability as regards their
26 * requirements in conditions enabling the security of their systems and/or
27 * data to be ensured and, more generally, to use and operate it in the
28 * same conditions as regards security.
29 *
30 * The fact that you are presently reading this means that you have had
31 * knowledge of the CeCILL-B license and that you accept its terms.
32 */
33
34#ifndef AIMS_DATA_PHEADER_H
35#define AIMS_DATA_PHEADER_H
36
37#include <aims/data/header.h>
38#include <cartobase/object/object.h>
39#include <cartobase/object/syntax.h>
40#include <cartobase/object/property.h>
41#include <cartobase/object/headered.h>
42
43namespace aims
44{
45 namespace internal
46 {
49 }
50
52 {
53 public:
59 virtual ~PythonHeader();
60
62
63 virtual const char* id() const;
64 virtual bool readMinf( const std::string & filename );
65 virtual bool writeMinf( const std::string & filename );
66 virtual bool writeMinf( const std::string & filename ) const;
67 virtual Header* cloneHeader( bool keepUuid = false ) const;
68 virtual void copy( const PythonHeader &, bool keepUuid = false );
69 virtual void copy( const carto::Object &, bool keepUuid = false );
70 virtual bool isScalar() const { return false; }
71 virtual bool isString() const { return false; }
72 virtual bool isArray() const { return false; }
73 virtual bool isDynArray() const { return false; }
74 virtual bool isIterator() const { return false; }
75 virtual bool isDictionaryIterator() const { return false; }
76
78 static bool writeMinf( const carto::Object & header,
79 const std::string & filename );
80 static bool writeMinf( carto::Object & header,
81 const std::string & filename );
82 static void copy( const carto::Object & src, carto::Object & dst,
83 bool keepUuid = false );
85 bool keepUuid = false );
86 };
87
88} // namespace aims
89
90
91namespace carto
92{
93
94 template <>
96 {
97 return Object( static_cast<GenericObject *>( new aims::PythonHeader ) );
98 }
99
100 template <>
101 inline Object Object::value( const aims::PythonHeader &v )
102 {
103 return Object( static_cast<GenericObject *>(
104 new aims::PythonHeader( v ) ) );
105 }
106}
107
108namespace carto {
109DECLARE_GENERIC_OBJECT_TYPE( aims::PythonHeader )
110}
111
112#endif
113
Attributed python-like header, stores all needed information about an object, currently used for volu...
Definition pheader.h:52
virtual void copy(const carto::Object &, bool keepUuid=false)
virtual bool writeMinf(const std::string &filename) const
write meta-info header
static bool writeMinf(carto::Object &header, const std::string &filename)
static carto::SyntaxSet * syntax()
virtual bool isString() const
Definition pheader.h:71
static carto::Object cloneHeader(const carto::Object &src, bool keepUuid=false)
static bool writeMinf(const carto::Object &header, const std::string &filename)
PythonHeader(carto::Headered &)
initialization by reference
virtual void copy(const PythonHeader &, bool keepUuid=false)
static void copy(const carto::Object &src, carto::Object &dst, bool keepUuid=false)
virtual ~PythonHeader()
virtual bool isDynArray() const
Definition pheader.h:73
virtual const char * id() const
virtual bool isArray() const
Definition pheader.h:72
virtual PythonHeader & operator=(const PythonHeader &)
virtual bool isScalar() const
Definition pheader.h:70
virtual bool isIterator() const
Definition pheader.h:74
PythonHeader(const PythonHeader &)
PythonHeader(const internal::PythonHeaderType &)
virtual bool writeMinf(const std::string &filename)
write meta-info header, non-const version (may change some attributes)
virtual Header * cloneHeader(bool keepUuid=false) const
virtual bool readMinf(const std::string &filename)
read meta-info header
virtual bool isDictionaryIterator() const
Definition pheader.h:75
static Object value()
Object value(const Object &value)
carto::PointerObject< carto::PropertySet > PythonHeaderType
wrapper to Headered/PropertySet
Definition pheader.h:48
The class for EcatSino data write operation.
std::map< std::string, Syntax > SyntaxSet
#define DECLARE_GENERIC_OBJECT_TYPE(T)