soma-io 6.0.6
datasourceinfo.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_DATASOURCEINFO_DATASOURCEINFO_H
35#define SOMAIO_DATASOURCEINFO_DATASOURCEINFO_H
36//--- somaio -----------------------------------------------------------------
39#include <soma-io/datasource/datasourcelist.h> // member
40//--- cartobase --------------------------------------------------------------
41#include <cartobase/object/object.h> // member
42#include <cartobase/smart/rcptr.h> // member
43//--- system -----------------------------------------------------------------
44#include <string>
45//----------------------------------------------------------------------------
46
47namespace soma
48{
49 class DataSource;
50
67 {
68 public:
73 const DataSourceList &
74 dsl = DataSourceList());
81 const std::vector<int> & dim = std::vector<int>() );
88 DataSourceInfo( const std::string & fname );
89 // Constructor from a buffer
90 //DataSourceInfo( char* buffer );
93 virtual ~DataSourceInfo();
94
95 const carto::Object & header() const { return _header; }
98 { return _capabilities; }
101
108 const carto::Object & privateIOData() const { return _privateiodata; }
110 const DataSourceList & list() const { return _datasourcelist; }
112 std::string url() const { return _datasourcelist.dataSource()->url(); }
113 std::string identifiedFormat() const { return _identifiedFormat; }
114 void setIdentifiedFormat( const std::string & format )
115 { _identifiedFormat = format;
116 if( header() ) header()->setProperty( "format", format ); }
117 std::string identifiedFileExtension() const
118 { return _identifiedFileExtension; }
119 void setIdentifiedFileExtension( const std::string & ext )
120 { _identifiedFileExtension = ext; }
121
122 protected:
127 std::string _identifiedFormat;
129 };
130
131}
132
133#endif
Reading/Writing Capabilities of a FormatReader.
carto::Object & privateIOData()
DataSourceInfo(const std::string &fname)
Constructor from a filename.
DataSourceInfo(const DataSourceInfo &)
Constructor by copy.
DataSourceList & list()
carto::Object & header()
void setIdentifiedFormat(const std::string &format)
carto::Object _privateiodata
const DataSourceList & list() const
std::string url() const
const carto::Object & privateIOData() const
privateIOData is a generic object used for specific formats readers/writers to store data which may b...
const carto::Object & header() const
DataSourceInfo(const carto::rc_ptr< DataSource > &ds, carto::Object header)
Constructor from a datasource + header.
const DataSourceCapabilities & capabilities() const
DataSourceList _datasourcelist
virtual ~DataSourceInfo()
std::string identifiedFileExtension() const
DataSourceCapabilities & capabilities()
std::string identifiedFormat() const
DataSourceCapabilities _capabilities
std::string _identifiedFileExtension
DataSourceInfo(const carto::Object &header=carto::none(), const DataSourceCapabilities &cap=DataSourceCapabilities(), const DataSourceList &dsl=DataSourceList())
Constructor from a header [+ capabilities + dslist].
DataSourceInfo(const carto::rc_ptr< DataSource > &ds, const std::vector< int > &dim=std::vector< int >())
Constructor from a datasource [+ dimensions (to build a header)].
void setIdentifiedFileExtension(const std::string &ext)
std::string _identifiedFormat
This class allows to manipulate "lists" of pointers to DataSource.
Object none()