32 #ifndef VLXVisitorLinker_INCLUDE_ONCE 33 #define VLXVisitorLinker_INCLUDE_ONCE 69 if( it != mLinkMap->end() )
75 return it->second.get_writable();
93 for(
size_t i=0; i<obj->
value().size(); ++i)
96 obj->
value()[i].value().getStructure()->acceptVisitor(
this);
99 obj->
value()[i].value().getList()->acceptVisitor(
this);
110 obj->
value()[i].value().setStructure( lnk_obj );
124 for(
size_t i=0; i<list->
value().size(); ++i)
127 list->
value()[i].getStructure()->acceptVisitor(
this);
129 list->
value()[i].getList()->acceptVisitor(
this);
140 list->
value()[i].setStructure( lnk_obj );
162 EError
error()
const {
return mError; }
167 const std::map< std::string, vl::ref<VLXStructure> >* mLinkMap;
A simple String formatting class.
Substitutes IDs into VLXStructures using the provided link map.
static void warning(const String &message)
Use this function to provide information about situations that might lead to errors or loss of data...
virtual void visitList(VLXList *list)
static void error(const String &message)
Use this function to provide information about run-time errors: file not found, out of memory...
An array of 64 bits floating point numbers, can also have a tag.
virtual void visitArray(VLXArrayReal *)
#define VL_INSTRUMENT_CLASS(ClassName, BaseClass)
void setError(EError err)
std::vector< VLXValue > & value()
A list of key/VLXValue pairs, can also have a tag.
A simple sequence of VLXValue objects, can also have a tag.
std::vector< KeyValue > & value()
An array of 64 bits integers, can also have a tag.
virtual void visitStructure(VLXStructure *obj)
VisitorLinker(const std::map< std::string, vl::ref< VLXStructure > > *map=NULL)
Base class for all visitors visiting a VLX hierarchy.
The ref<> class is used to reference-count an Object.
bool isVisited(void *node)
virtual void visitArray(VLXArrayInteger *)
void setLinkMap(const std::map< std::string, vl::ref< VLXStructure > > *map)
VLXStructure * link(const std::string &uid)