12 #include <vlutil/vlString.h>
51 template <
typename KeyType>
57 void setRegistryIterator(std::vector<DtReaderWriterRegistryData*>::iterator iter);
59 std::vector<DtReaderWriterRegistryData*>::iterator registryIterator()
const;
64 std::vector<DtReaderWriterRegistryData*>::iterator
myRegIter;
96 template <
typename KeyType>
102 void setRegistryIterator(std::vector<DtReaderWriterRegistryData*>::const_iterator iter);
104 std::vector<DtReaderWriterRegistryData*>::const_iterator registryIterator()
const;
109 std::vector<DtReaderWriterRegistryData*>::const_iterator
myRegIter;
164 virtual unsigned size()
const;
184 virtual void getSelf(DtlObjPtr args,
187 virtual DtlObjPtr
getData(DtlObjPtr args,
203 virtual char*
encode(
char*)
const;
206 virtual const char*
decode(
const char*);
214 static void cleanupPropertyFactory();
232 virtual int count()
const;
255 const std::set<DtString>& ignore = std::set<DtString>());
305 virtual void reset();
314 virtual void invalidateCache();
317 virtual void invalidateCacheForProperty(
const DtString& propName);
337 virtual bool setWritePrototypeHeader(
bool);
338 virtual bool writePrototypeHeader()
const;
345 virtual void filterIgnoredProperties(
DtReaderWriter* rw,
const std::set<DtString>& ignore);
352 virtual void writeSelf(std::string& fp,
int indentLevel,
bool writeUnspecified,
const DtFilename& path);
353 virtual void writeData(std::string& fp,
int indentLevel,
bool writeUnspecified,
const DtFilename& path);
355 virtual void putData(std::string&,
int indentLevel = 0);
373 virtual void writePrototypeHeader(std::string& fp,
const DtReaderWriter* rw,
int indentLevel)
const;
376 virtual void writePropertyData(
DtReaderWriter* rw, std::string& fp,
int indentLevel,
bool writeUnspecified,
const DtFilename& path);
403 template <
typename KeyType>
407 <<
"\", to the specified type." << std::endl;
413 inline int DtPropertiesIterator::key<int>()
const
416 DtString keyStr(property()->propertyName().
string());
417 int result = keyStr.toInt(&ok);
421 DtWarn <<
"Could not convert key, \"" << property()->propertyName()
422 <<
"\", to an int." << std::endl;
429 inline double DtPropertiesIterator::key<double>()
const
432 DtString keyStr(property()->propertyName().
string());
433 int result = keyStr.toDouble(&ok);
437 DtWarn <<
"Could not convert key, \"" << property()->propertyName()
438 <<
"\", to an double." << std::endl;
445 inline DtString DtPropertiesIterator::key<DtString>()
const
447 return property()->propertyName().string();
450 template <
typename KeyType>
454 <<
"\", to the specified type." << std::endl;
458 inline int DtPropertiesConstIterator::key<int>()
const
461 DtString keyStr(property()->propertyName().
string());
462 int result = keyStr.toInt(&ok);
466 DtWarn <<
"Could not convert key, \"" << property()->propertyName()
467 <<
"\", to an int." << std::endl;
474 inline double DtPropertiesConstIterator::key<double>()
const
477 DtString keyStr(property()->propertyName().
string());
478 int result = keyStr.toDouble(&ok);
482 DtWarn <<
"Could not convert key, \"" << property()->propertyName()
483 <<
"\", to an double." << std::endl;
490 inline DtString DtPropertiesConstIterator::key<DtString>()
const
492 return property()->propertyName().string();