34 #ifndef SOMAIO_READER_PYTHONREADER_D_H 35 #define SOMAIO_READER_PYTHONREADER_D_H 85 return soma::PythonReader::genericSequenceHelper<std::vector<int> >(
108 carto::GenericObject*
109 genericHelper<unsigned char>( carto::GenericObject*,
const std::string &,
126 carto::GenericObject*
127 genericHelper<std::string>( carto::GenericObject*,
const std::string &,
148 if( quote !=
'"' && quote !=
'\'' )
150 std::cerr <<
"string reader: NOT a string: " << quote << std::endl;
162 carto::GenericObject* listHelper( carto::GenericObject*,
const std::string &,
166 std::string id, type;
174 char c = ds.
getch(), mark;
184 throw std::runtime_error( std::string(
"PythonReader: Not a list/tuple: " )
214 obj->getValue().push_back( r.
read( obj,
"" ) );
220 catch( std::exception & e )
228 carto::GenericObject* noneHelper( carto::GenericObject*,
const std::string &,
245 std::string id, type;
253 char c = ds.
getch(), mark;
263 throw std::runtime_error( std::string(
"PythonReader: Not a list/tuple: " )
295 de = genericHelper<typename T::value_type>( obj,
"", r );
298 obj->
getValue().push_back( dev->getValue() );
302 throw std::runtime_error( std::string(
"PythonReader: wrong type " 303 "inserted in homogen sequence: " 313 catch( std::exception & e )
336 std::cerr <<
"Attempt to read a dictionary not starting with '{'" << std::endl;
349 catch( std::exception & e )
std::map< std::string, Helper > HelperSet
carto::rc_ptr< soma::DataSource > datasource
virtual std::string url() const
Private(const SyntaxSet &r)
Abstraction layer for various data sources (file, buffer, socket...).
carto::rc_ptr< DataSource > dataSource()
bool eof() const
have we hit EOF?
static void launchErrnoExcept(const std::string &filename="")
std::map< std::string, Syntax > SyntaxSet
std::string lineString() const
static carto::GenericObject * genericDictHelper(carto::GenericObject *, const std::string &, PythonReader &r)
virtual std::string name() const
file name
std::string readWhile(const std::string &s)
read characters in s
virtual bool ungetch(int ch)=0
void readDictionary2(carto::GenericObject &obj)
reads the remaining attributes of a string dictionary
Private(const SyntaxSet &r, carto::rc_ptr< soma::DataSource > ds)
unsigned skipWhile(const std::string &s)
skip characters in s
virtual carto::GenericObject * read()
virtual bool isOpen() const =0
std::string readString(char separator, unsigned &charsread)
static carto::GenericObject * genericSequenceHelper(carto::GenericObject *, const std::string &, PythonReader &r)