STOFFEntry.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2
3/* libstaroffice
4* Version: MPL 2.0 / LGPLv2+
5*
6* The contents of this file are subject to the Mozilla Public License Version
7* 2.0 (the "License"); you may not use this file except in compliance with
8* the License or as specified alternatively below. You may obtain a copy of
9* the License at http://www.mozilla.org/MPL/
10*
11* Software distributed under the License is distributed on an "AS IS" basis,
12* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13* for the specific language governing rights and limitations under the
14* License.
15*
16* Major Contributor(s):
17* Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18* Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19* Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20* Copyright (C) 2006, 2007 Andrew Ziem
21* Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22*
23*
24* All Rights Reserved.
25*
26* For minor contributions see the git repository.
27*
28* Alternatively, the contents of this file may be used under the terms of
29* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30* in which case the provisions of the LGPLv2+ are applicable
31* instead of those above.
32*/
33
34#ifndef STOFF_ENTRY_H
35#define STOFF_ENTRY_H
36
37#include <ostream>
38#include <string>
39
47{
48public:
50 STOFFEntry() : m_begin(-1), m_length(-1), m_type(""), m_name(""), m_id(-1), m_parsed(false), m_extra("") {}
51
52 virtual ~STOFFEntry();
53
55 void setBegin(long off)
56 {
57 m_begin = off;
58 }
60 void setLength(long l)
61 {
62 m_length = l;
63 }
65 void setEnd(long off)
66 {
67 m_length = off-m_begin;
68 }
69
71 long begin() const
72 {
73 return m_begin;
74 }
76 long end() const
77 {
78 return m_begin+m_length;
79 }
81 long length() const
82 {
83 return m_length;
84 }
85
87 bool valid() const
88 {
89 return m_begin >= 0 && m_length > 0;
90 }
91
93 bool operator==(const STOFFEntry &a) const
94 {
95 if (m_begin != a.m_begin) return false;
96 if (m_length != a.m_length) return false;
97 if (m_id != a. m_id) return false;
98 if (m_type != a.m_type) return false;
99 if (m_name != a.m_name) return false;
100 return true;
101 }
103 bool operator!=(const STOFFEntry &a) const
104 {
105 return !operator==(a);
106 }
107
109 bool isParsed() const
110 {
111 return m_parsed;
112 }
114 void setParsed(bool ok=true) const
115 {
116 m_parsed = ok;
117 }
118
120 void setType(std::string const &newType)
121 {
122 m_type=newType;
123 }
125 std::string const &type() const
126 {
127 return m_type;
128 }
130 bool hasType(std::string const &typ) const
131 {
132 return m_type == typ;
133 }
134
136 void setName(std::string const &nam)
137 {
138 m_name=nam;
139 }
141 std::string const &name() const
142 {
143 return m_name;
144 }
146 bool hasName(std::string const &nam) const
147 {
148 return m_name == nam;
149 }
150
152 int id() const
153 {
154 return m_id;
155 }
157 void setId(int newId)
158 {
159 m_id = newId;
160 }
161
163 std::string const &extra() const
164 {
165 return m_extra;
166 }
168 void setExtra(std::string const &s)
169 {
170 m_extra = s;
171 }
172
173 friend std::ostream &operator<< (std::ostream &o, STOFFEntry const &ent)
174 {
175 o << ent.m_type;
176 if (ent.m_name.length()) o << "|" << ent.m_name;
177 if (ent.m_id >= 0) o << "[" << ent.m_id << "]";
178 if (ent.m_extra.length()) o << "[" << ent.m_extra << "]";
179 return o;
180 }
181
182protected:
184
186 std::string m_type;
188 std::string m_name;
190 int m_id;
192 mutable bool m_parsed;
194 std::string m_extra;
195};
196
197#endif
198// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
basic class to store an entry in a file This contained :
Definition: STOFFEntry.hxx:47
long begin() const
returns the begin offset
Definition: STOFFEntry.hxx:71
std::string m_extra
an extra string
Definition: STOFFEntry.hxx:194
void setName(std::string const &nam)
sets the name of the entry
Definition: STOFFEntry.hxx:136
bool hasType(std::string const &typ) const
returns true if the type entry == type
Definition: STOFFEntry.hxx:130
int id() const
returns the id
Definition: STOFFEntry.hxx:152
std::string const & name() const
name of the entry
Definition: STOFFEntry.hxx:141
STOFFEntry()
constructor
Definition: STOFFEntry.hxx:50
bool operator==(const STOFFEntry &a) const
basic operator==
Definition: STOFFEntry.hxx:93
std::string m_type
the entry type
Definition: STOFFEntry.hxx:186
bool isParsed() const
a flag to know if the entry was parsed or not
Definition: STOFFEntry.hxx:109
friend std::ostream & operator<<(std::ostream &o, STOFFEntry const &ent)
Definition: STOFFEntry.hxx:173
void setType(std::string const &newType)
sets the type of the entry: BTEP,FDPP, BTEC, FDPC, PLC , TEXT, ...
Definition: STOFFEntry.hxx:120
void setBegin(long off)
sets the begin offset
Definition: STOFFEntry.hxx:55
bool operator!=(const STOFFEntry &a) const
basic operator!=
Definition: STOFFEntry.hxx:103
void setExtra(std::string const &s)
sets the extra string
Definition: STOFFEntry.hxx:168
int m_id
an identificator
Definition: STOFFEntry.hxx:190
std::string m_name
the name
Definition: STOFFEntry.hxx:188
long length() const
returns the length of the zone
Definition: STOFFEntry.hxx:81
std::string const & extra() const
retrieves the extra string
Definition: STOFFEntry.hxx:163
bool hasName(std::string const &nam) const
checks if the entry name is equal to name
Definition: STOFFEntry.hxx:146
void setId(int newId)
sets the id
Definition: STOFFEntry.hxx:157
void setParsed(bool ok=true) const
sets the flag m_parsed to true or false
Definition: STOFFEntry.hxx:114
void setEnd(long off)
sets the end offset
Definition: STOFFEntry.hxx:65
void setLength(long l)
sets the zone size
Definition: STOFFEntry.hxx:60
bool m_parsed
a bool to store if the entry is or not parsed
Definition: STOFFEntry.hxx:192
std::string const & type() const
returns the type of the entry
Definition: STOFFEntry.hxx:125
bool valid() const
returns true if the zone length is positive
Definition: STOFFEntry.hxx:87
long end() const
returns the end offset
Definition: STOFFEntry.hxx:76
virtual ~STOFFEntry()
Definition: STOFFEntry.cxx:36
long m_begin
the begin of the entry.
Definition: STOFFEntry.hxx:183
long m_length
the size of the entry
Definition: STOFFEntry.hxx:183

Generated on Fri Sep 30 2022 11:47:05 for libstaroffice by doxygen 1.9.5