37#ifndef AIMS_IO_AIMSGRAPHR_D_H
38#define AIMS_IO_AIMSGRAPHR_D_H
45#include <cartobase/smart/rcptr.h>
59 loadGlobalObjects( std::map<std::string, aims::AimsGraphReader::Wrapper*>
61 const std::map<std::string,
62 std::map<std::string, std::string> > & globals,
63 const std::string & basepath,
65 std::map<std::string, GraphElementCode> > & objmap,
69 std::set<std::string> readfilter;
70 std::set<std::string> excludefilter;
79 AimsGraphReader::ObjectWrapper<T>::extract(
int index )
81 typename T::const_iterator io;
82 io = data->find( index );
84 if( io != data->end() )
85 (*obj)[0] = io->second;
87 return(
new ObjectWrapper<T>( obj ) );
91 template<
typename T> std::string
98 template<
typename T> std::string
105 template<
class T>
bool
114 catch( std::exception & e )
116 std::cerr << e.what() << std::endl;
126 const std::map<std::string, std::map<std::string, ProcFunc> > & pcs
130 if( ipcs == pcs.end()
131 || ipcs->second.find( f.
dataType() ) == ipcs->second.end() )
134 &AimsGraphReader::defaultInsertFunction<T> );
141 if( ipcs == pcs.end()
143 == ipcs->second.end() )
147 &AimsGraphReader::defaultInsertFunction<T> );
155 template<
class T>
bool
156 AimsGraphReader::defaultInsertFunction(
Process & p,
const std::string &,
159 PostProcessor & pp = (PostProcessor &) p;
160 const ElementInfo & info = pp.elementInfo();
161 T * obj = ((
const ObjectWrapper<T> *) info.object)->data;
Reader / postprocessor for graph reading.
static bool read(Process &, const std::string &, Finder &)
Aims object reading function - called by the Process mechanism.
AimsGraphReader(const std::string &filename)
Generic finder / checker for all data objects and file formats This will replace the old AimsFinder.
std::string dataType() const
std::string objectType() const
Link mechanism between the Finder and a process operating on arbitrary data types.
const std::map< std::string, std::map< std::string, ProcFunc > > & processTypes() const
Query registered process types.
void registerProcessType(const std::string &objType, const std::string &dataType, ProcFunc procFunc)
Registers the process to call on a given (object type, data type) couple (just fills the map)
Process()
Attempts to read the header of filename and, if successful, calls the operator() of the process \proc...
Generic reader for every format of Aims object.
virtual bool read(T &obj, int border=0, const std::string *format=0, int frame=-1)
Finds the correct format and reads the object. if format is specified, this format is tried first,...
void adjustVoxelSize(T &, const T &)
utility function to copy voxel sizes from an object to another (if applicable)
The class for EcatSino data write operation.
virtual std::string objectType() const
virtual std::string dataType() const
friend class aims::AimsGraphReader