soma-io
5.1.2
formatreader.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 SOMAIO_READER_FORMATREADER_H
35
#define SOMAIO_READER_FORMATREADER_H
36
//--- soma-io ----------------------------------------------------------------
37
#include <
soma-io/config/soma_config.h
>
38
//--- cartobase --------------------------------------------------------------
39
#include <
cartobase/object/object.h
>
40
//--- system -----------------------------------------------------------------
41
#include <string>
42
//----------------------------------------------------------------------------
43
44
namespace
carto
{
45
template
<
typename
T>
class
rc_ptr;
46
class
Object;
47
}
48
49
namespace
soma
50
{
51
class
DataSource;
52
class
DataSourceInfo;
53
class
AllocatorContext;
54
83
template
<
typename
T>
84
class
FormatReader
85
{
86
public
:
87
virtual
~FormatReader
();
88
89
//========================================================================
90
// N E W M E T H O D S
91
//========================================================================
93
virtual
void
setupAndRead
( T & obj,
carto::rc_ptr<DataSourceInfo>
dsi,
94
const
AllocatorContext
& context,
95
carto::Object
options );
96
100
virtual
T*
createAndRead
(
carto::rc_ptr<DataSourceInfo>
dsi,
101
const
AllocatorContext
& context,
102
carto::Object
options );
103
113
virtual
void
read
( T & obj,
114
carto::rc_ptr<DataSourceInfo>
dsi,
115
const
AllocatorContext
& context,
116
carto::Object
options );
117
125
virtual
FormatReader<T>
*
clone
()
const
= 0;
126
129
virtual
std::string
formatID
()
const
= 0;
130
136
virtual
carto::rc_ptr<DataSourceInfo>
checkDataSourceInfo
(
137
carto::rc_ptr<DataSourceInfo>
dsi,
carto::Object
options );
138
139
//========================================================================
140
// S T I L L U S E D
141
//========================================================================
146
virtual
T*
create
(
carto::Object
header,
147
const
AllocatorContext
& context,
148
carto::Object
options );
153
virtual
void
setup
( T & obj,
carto::Object
header,
154
const
AllocatorContext
& context,
155
carto::Object
options );
156
157
};
158
159
extern
template
class
FormatReader<carto::GenericObject>
;
160
extern
template
class
FormatReader<carto::Object>
;
161
}
162
163
#endif
164
carto::Object
carto::rc_ptr
soma::AllocatorContext
Allocation context.
Definition:
allocator.h:261
soma::FormatReader
Low-level object IO reader specialized for a specific format.
Definition:
formatreader.h:85
soma::FormatReader::create
virtual T * create(carto::Object header, const AllocatorContext &context, carto::Object options)
create the object to be read, bind the allocation context.
Definition:
formatreader_d.h:140
soma::FormatReader::clone
virtual FormatReader< T > * clone() const =0
Duplicate the FormatReader.
soma::FormatReader::setupAndRead
virtual void setupAndRead(T &obj, carto::rc_ptr< DataSourceInfo > dsi, const AllocatorContext &context, carto::Object options)
Full reading procedure, for an already existing object.
Definition:
formatreader_d.h:69
soma::FormatReader::setup
virtual void setup(T &obj, carto::Object header, const AllocatorContext &context, carto::Object options)
setup an existing object (for resizing or reallocation for instance).
Definition:
formatreader_d.h:149
soma::FormatReader::createAndRead
virtual T * createAndRead(carto::rc_ptr< DataSourceInfo > dsi, const AllocatorContext &context, carto::Object options)
Factory mode: creates an object and reads it.
Definition:
formatreader_d.h:83
soma::FormatReader::checkDataSourceInfo
virtual carto::rc_ptr< DataSourceInfo > checkDataSourceInfo(carto::rc_ptr< DataSourceInfo > dsi, carto::Object options)
Checks that dsi has been identified with the matching format checker.
Definition:
formatreader_d.h:118
soma::FormatReader::read
virtual void read(T &obj, carto::rc_ptr< DataSourceInfo > dsi, const AllocatorContext &context, carto::Object options)
Reads part or all of the object obj.
Definition:
formatreader_d.h:106
soma::FormatReader::formatID
virtual std::string formatID() const =0
Format identifier (abstract).
soma::FormatReader::~FormatReader
virtual ~FormatReader()
Definition:
formatreader_d.h:61
carto
soma
Definition:
allocator.h:49
object.h
soma_config.h
soma-io
reader
formatreader.h
Generated by
1.9.1