34 #ifndef RAG_TIME_5_STRUCT_MANAGER 35 # define RAG_TIME_5_STRUCT_MANAGER 70 for (
auto &
id :
m_ids)
id=0;
72 for (
auto &kind :
m_kinds) kind=
"";
82 std::string res(
m_kinds[main ? 0 : 1]);
83 std::string::size_type pos = res.find_last_of(
':');
84 if (pos == std::string::npos)
return res;
85 return res.substr(pos+1);
183 Field &field,
long fSz=0);
187 static bool readUnicodeString(
MWAWInputStreamPtr input,
long endPos, librevenge::RVNGString &
string);
189 static bool readDataIdList(
MWAWInputStreamPtr input,
int n, std::vector<int> &listIds);
220 o <<
":#type=" << tab.
m_type;
237 enum Type { T_Unknown, T_Bool, T_Double, T_Long, T_2Long, T_FieldList, T_LongList, T_DoubleList, T_TabList,
238 T_Code, T_Color, T_CondColor, T_PrintInfo, T_String, T_Unicode,
T_ZoneId, T_LongDouble, T_Unstructured
257 for (
auto &val : m_longValue) val=0;
302 for (
auto &
id : m_subZoneId)
id=0;
308 MWAW_DEBUG_MSG((
"RagTime5StructManager::ZoneLink::getSubZoneId: called with bad value=%d\n", i));
311 return (m_subZoneId[0]&0x3fffffff);
343 : m_regroupFields(false)
friend std::ostream & operator<<(std::ostream &o, ZoneLink const &link)
operator<<
Definition: RagTime5StructManager.hxx:314
a tabulation in RagTime 5/6 structures
Definition: RagTime5StructManager.hxx:192
std::string m_asciiName
the ascii file name ( used if we need to create a ascii file)
Definition: RagTime5StructManager.hxx:157
libmwaw::DebugFile & ascii()
returns the current ascii file
Definition: RagTime5StructManager.hxx:107
RagTime5Zone & operator=(RagTime5Zone const &orig)=delete
FieldParser(std::string const &zoneName)
constructor
Definition: RagTime5StructManager.hxx:342
void setInput(MWAWInputStreamPtr const &input)
reset the current input
Definition: RagTime5StructManager.hxx:96
long m_fileType
the file type
Definition: RagTime5StructManager.hxx:268
std::string m_name
the field name
Definition: RagTime5StructManager.hxx:410
virtual std::string getZoneName() const
return the debug name corresponding to a zone
Definition: RagTime5StructManager.hxx:350
virtual ~RagTime5Zone()
destructor
Definition: RagTime5StructManager.cxx:1630
std::string getKindLastPart(bool main=true) const
returns the main type
Definition: RagTime5StructManager.hxx:80
TabStop()
constructor
Definition: RagTime5StructManager.hxx:194
virtual std::string getZoneName(int n) const
return the debug name corresponding to a field
Definition: RagTime5StructManager.hxx:397
bool isMainInput() const
returns true if the input correspond to the basic file
Definition: RagTime5StructManager.hxx:102
std::shared_ptr< libmwaw::DebugFile > m_localAsciiFile
the local ascii file ( if we need to create a new input)
Definition: RagTime5StructManager.hxx:163
an interface used to insert comment in a binary file, written in ascii form (if debug_with_files is n...
Definition: MWAWDebug.hxx:65
RagTime5Zone(MWAWInputStreamPtr const &input, libmwaw::DebugFile &asc)
constructor
Definition: RagTime5StructManager.hxx:52
int m_idsFlag[3]
the zone flag
Definition: RagTime5StructManager.hxx:140
int m_variableD[2]
the content of the zone D if it exists
Definition: RagTime5StructManager.hxx:146
double m_doubleValue
the double value
Definition: RagTime5StructManager.hxx:274
libmwaw::DebugFile * m_asciiFile
the ascii file corresponding to an input
Definition: RagTime5StructManager.hxx:159
void addErrorInDebugFile(std::string const &zoneName)
mark a zone as bad
Definition: RagTime5StructManager.cxx:1668
~Field()
destructor
Definition: RagTime5StructManager.hxx:260
uint16_t m_leaderChar
the unicode leader char
Definition: RagTime5StructManager.hxx:232
virtual class use to parse the field data
Definition: RagTime5StructManager.hxx:340
main zone in a RagTime v5-v6 document
Definition: RagTime5StructManager.hxx:48
the class to store a color
Definition: libmwaw_internal.hxx:192
int m_type
the type
Definition: RagTime5StructManager.hxx:230
int getSubZoneId(int i) const
returns the sub zone id
Definition: RagTime5StructManager.hxx:305
int m_level
the zone level
Definition: RagTime5StructManager.hxx:124
std::vector< double > m_doubleList
the list of double value
Definition: RagTime5StructManager.hxx:282
virtual std::string getZoneName() const
return the debug name corresponding to a zone
Definition: RagTime5StructManager.hxx:392
#define MWAW_DEBUG_MSG(M)
Definition: libmwaw_internal.hxx:129
virtual class use to parse the unstructured data
Definition: RagTime5StructManager.hxx:383
Type m_type
the field type
Definition: RagTime5StructManager.hxx:266
std::vector< long > m_valuesList
list of potential values
Definition: RagTime5StructManager.hxx:335
friend std::ostream & operator<<(std::ostream &o, RagTime5Zone const &z)
operator<<
Definition: RagTime5StructManager.cxx:1685
a zone link in RagTime 5/6 structures
Definition: RagTime5StructManager.hxx:295
int m_dataId
the data id (or 0)
Definition: RagTime5StructManager.hxx:331
bool m_isParsed
a flag to know if the zone is parsed
Definition: RagTime5StructManager.hxx:148
long m_defPosition
the position of the definition in the main zones
Definition: RagTime5StructManager.hxx:128
void setAsciiFileName(std::string const &name)
defines the ascii name
Definition: RagTime5StructManager.hxx:114
Definition: RagTime5StructManager.hxx:238
std::string m_kinds[2]
the zone types: normal and packing
Definition: RagTime5StructManager.hxx:130
libmwaw::DebugFile * m_mainAsciiFile
the main ascii file (used to print error)
Definition: RagTime5StructManager.hxx:161
std::string m_name
the field type name
Definition: RagTime5StructManager.hxx:270
a field of RagTime 5/6 structures
Definition: RagTime5StructManager.hxx:235
virtual std::string getZoneName(int n) const
return the debug name corresponding to a field
Definition: RagTime5StructManager.hxx:355
std::vector< long > m_longList
the list of long value
Definition: RagTime5StructManager.hxx:280
bool m_regroupFields
a flag use to decide if we output one debug message by field or not
Definition: RagTime5StructManager.hxx:374
void createAsciiFile()
creates the ascii file
Definition: RagTime5StructManager.cxx:1634
std::string getZoneName() const
returns the zone name
Definition: RagTime5StructManager.cxx:1648
std::vector< MWAWEntry > m_entriesList
the list of original entries
Definition: RagTime5StructManager.hxx:142
Field()
constructor
Definition: RagTime5StructManager.hxx:242
MWAWEntry m_entry
the zone entry
Definition: RagTime5StructManager.hxx:132
int m_clusterId
the id of the zone corresponding to this property (always a clust graph ?)
Definition: RagTime5StructManager.hxx:428
std::shared_ptr< MWAWInputStream > MWAWInputStreamPtr
a smart pointer of MWAWInputStream
Definition: libmwaw_internal.hxx:547
std::string m_name
the field name
Definition: RagTime5StructManager.hxx:377
std::vector< TabStop > m_tabList
the list of tabStop
Definition: RagTime5StructManager.hxx:286
std::string m_name
the zone name ( mainly used for debugging)
Definition: RagTime5StructManager.hxx:134
MWAWColor m_color
the color
Definition: RagTime5StructManager.hxx:276
long m_subZoneId[2]
the sub id zones
Definition: RagTime5StructManager.hxx:333
std::map< int, std::shared_ptr< RagTime5Zone > > m_childIdToZoneMap
the child zones
Definition: RagTime5StructManager.hxx:144
std::string m_extra
extra data
Definition: RagTime5StructManager.hxx:292
GObjPropFieldParser(std::string const &name)
constructor
Definition: RagTime5StructManager.hxx:419
float m_position
the position
Definition: RagTime5StructManager.hxx:228
int m_numLongByData
the number of long by data (in m_longList)
Definition: RagTime5StructManager.hxx:284
virtual bool parseHeaderField(Field &field, RagTime5Zone &, int, libmwaw::DebugStream &f)
parse a header field
Definition: RagTime5StructManager.hxx:362
std::stringstream DebugStream
a basic stream (if debug_with_files is not defined, does nothing)
Definition: MWAWDebug.hxx:61
Type
the different type
Definition: RagTime5StructManager.hxx:237
DataParser(std::string const &zoneName)
constructor
Definition: RagTime5StructManager.hxx:385
std::string m_parentName
the parent name
Definition: RagTime5StructManager.hxx:126
basic class to store an entry in a file This contained :
Definition: MWAWEntry.hxx:46
basic class used to store RagTime 5/6 structures
Definition: RagTime5StructManager.hxx:170
friend std::ostream & operator<<(std::ostream &o, TabStop const &tab)
operator<<
Definition: RagTime5StructManager.hxx:201
bool m_hiLoEndian
true if the endian is hilo
Definition: RagTime5StructManager.hxx:136
bool m_defaultInput
a flag used to know if the input is or not the default input
Definition: RagTime5StructManager.hxx:155
int m_ids[3]
the zone id
Definition: RagTime5StructManager.hxx:138
std::string m_extra
extra data
Definition: RagTime5StructManager.hxx:337
ZoneLink()
constructor
Definition: RagTime5StructManager.hxx:297
std::vector< Field > m_fieldList
the list of field
Definition: RagTime5StructManager.hxx:288
virtual bool parseField(Field &field, RagTime5Zone &, int, libmwaw::DebugStream &f)
parse a field
Definition: RagTime5StructManager.hxx:368
MWAWInputStreamPtr m_input
the main input
Definition: RagTime5StructManager.hxx:153
MWAWEntry m_entry
entry to defined the position of a String or Unstructured data
Definition: RagTime5StructManager.hxx:290
basic parser to read image/main graphic position properties
Definition: RagTime5StructManager.hxx:417
MWAWInputStreamPtr getInput()
returns the current input
Definition: RagTime5StructManager.hxx:91
std::string m_extra
extra data
Definition: RagTime5StructManager.hxx:150
virtual bool parseData(MWAWInputStreamPtr &, long, RagTime5Zone &, int, libmwaw::DebugStream &)
parse a data
Definition: RagTime5StructManager.hxx:404
librevenge::RVNGString m_string
small string use to store a string or a 4 char code
Definition: RagTime5StructManager.hxx:278