67 bool checkEncryption(uint32_t date, uint32_t time, std::vector<uint8_t>
const &passwd);
203 STOFF_DEBUG_MSG((
"StarZone::getRecordLastPosition: can not find last position\n"));
220 bool readString(std::vector<uint32_t> &
string,
int encoding=-1)
const 222 std::vector<size_t> srcPositions;
223 return readString(
string, srcPositions, encoding);
226 bool readString(std::vector<uint32_t> &
string, std::vector<size_t> &srcPositions,
int encoding=-1,
bool checkEncryption=
false)
const;
238 if (poolId>=0 && poolId<
int(
m_poolList.size())) {
242 if (poolId==0xFFF0)
return true;
243 STOFF_DEBUG_MSG((
"StarZone::getPoolName: can not find pool name for %d\n", poolId));
259 std::string
const &
name()
const 271 bool closeRecord(
char type, std::string
const &debugName);
bool readRecordSizes(long pos)
try to read the record sizes
Definition: StarZone.cxx:637
bool openDummyRecord()
open a dummy record
Definition: StarZone.cxx:445
std::map< long, long > m_beginToEndMap
other position to end position zone
Definition: StarZone.hxx:303
bool openSCRecord()
try to open a SC record: size (32 bytes) + size bytes
Definition: StarZone.cxx:483
void closeFlagZone()
close the cflag zone
Definition: StarZone.cxx:618
bool openSWRecord(char &type)
try to open a SW record: type + size (24 bytes)
Definition: StarZone.cxx:507
bool getPoolName(int poolId, librevenge::RVNGString &res) const
try to return a pool name
Definition: StarZone.hxx:235
bool closeSCRecord(std::string const &debugName)
try to close a record
Definition: StarZone.hxx:165
STOFFInputStreamPtr m_input
the input stream
Definition: StarZone.hxx:278
long m_flagEndZone
end of a cflags zone
Definition: StarZone.hxx:305
int getHeaderVersion() const
returns the StarOffice header version (if set)
Definition: StarZone.hxx:94
int getVersion() const
returns the StarOffice version: 3-5
Definition: StarZone.hxx:84
int m_documentVersion
the document version
Definition: StarZone.hxx:284
StarEncoding::Encoding getEncoding() const
returns the zone encoding
Definition: StarZone.hxx:121
int getNumPoolNames() const
return the number of pool name
Definition: StarZone.hxx:230
Definition: STOFFDebug.hxx:210
StarEncoding::Encoding m_encoding
the zone encoding
Definition: StarZone.hxx:288
bool closeSWRecord(char type, std::string const &debugName)
try to close a record
Definition: StarZone.hxx:177
int getGuiType() const
returns the zone GUI type
Definition: StarZone.hxx:131
int getDocumentVersion() const
returns the StarOffice document version
Definition: StarZone.hxx:89
int isCompatibleWith(int vers) const
checks if the document is compatible with vers
Definition: StarZone.hxx:99
std::stack< long > m_positionStack
the position stack
Definition: StarZone.hxx:301
bool closeSfxRecord(char type, std::string const &debugName)
try to close a record
Definition: StarZone.hxx:189
std::shared_ptr< StarEncryption > m_encryption
the encryption
Definition: StarZone.hxx:292
int getRecordLevel() const
returns the record level
Definition: StarZone.hxx:195
bool closeSCHHeader(std::string const &debugName)
close a zone header
Definition: StarZone.cxx:366
std::shared_ptr< STOFFInputStream > STOFFInputStreamPtr
a smart pointer of STOFFInputStream
Definition: libstaroffice_internal.hxx:485
#define STOFF_DEBUG_MSG(M)
Definition: libstaroffice_internal.hxx:129
int m_guiType
the zone GUI type
Definition: StarZone.hxx:290
int isCompatibleWith(int vers1, int vers2, int vers3, int vers4) const
checks if the document is compatible with vers1 and not vers2 or vers3 and not vers4
Definition: StarZone.hxx:115
Encoding
the different encoding
Definition: StarEncoding.hxx:54
long getRecordLastPosition() const
returns the actual record last position
Definition: StarZone.hxx:200
bool closeSDRHeader(std::string const &debugName)
close a zone header
Definition: StarZone.cxx:436
bool readString(std::vector< uint32_t > &string, int encoding=-1) const
try to read an unicode string
Definition: StarZone.hxx:220
std::string m_asciiName
the file ascii name
Definition: StarZone.hxx:294
long getFlagLastPosition() const
returns the flag last position
Definition: StarZone.hxx:214
libstoff::DebugFile m_ascii
the ascii zone
Definition: StarZone.hxx:280
std::stack< char > m_typeStack
the type stack
Definition: StarZone.hxx:299
std::string m_zoneName
the zone name
Definition: StarZone.hxx:296
int m_version
the zone version
Definition: StarZone.hxx:282
bool readSWHeader()
read the zone header present in a SW file
Definition: StarZone.cxx:190
bool closeRecord(std::string const &debugName)
try to close a record
Definition: StarZone.hxx:147
virtual ~StarZone()
destructor
Definition: StarZone.cxx:70
unsigned char openFlagZone()
try to open a cflag zone
Definition: StarZone.cxx:611
STOFFInputStreamPtr input()
return the zone input
Definition: StarZone.hxx:247
bool openSfxRecord(char &type)
try to open a Sfx record: type + size (24 bytes)
Definition: StarZone.cxx:550
bool openSCHHeader()
open a zone header present in a SCH file
Definition: StarZone.cxx:341
void setInput(STOFFInputStreamPtr input)
reset the current input
Definition: StarZone.cxx:75
StarZone(STOFFInputStreamPtr const &input, std::string const &ascName, std::string const &zoneName, char const *password)
constructor
Definition: StarZone.cxx:49
libstoff::DebugFile & ascii()
returns the ascii file
Definition: StarZone.hxx:254
bool checkEncryption(uint32_t date, uint32_t time, std::vector< uint8_t > const &passwd)
check encryption
Definition: StarZone.cxx:174
std::string const & name() const
return the zone name
Definition: StarZone.hxx:259
std::stack< int > m_headerVersionStack
the header version (for SDR zone)
Definition: StarZone.hxx:286
bool openRecord()
try to open a classic record: size (32 bytes) + size-4 bytes
Definition: StarZone.cxx:455
void setEncoding(StarEncoding::Encoding encod)
sets the zone encoding
Definition: StarZone.hxx:126
bool closeDummyRecord()
close a dummy record
Definition: StarZone.hxx:154
the main class to read/.
Definition: StarEncryption.hxx:51
int isCompatibleWith(int vers1, int vers2, int vers3) const
checks if the document is compatible with vers1 and not vers2 or vers3
Definition: StarZone.hxx:109
bool readStringsPool()
try to read a pool of strings
Definition: StarZone.cxx:103
bool closeVersionCompatHeader(std::string const &debugName)
close a zone header
Definition: StarZone.cxx:397
void setGuiType(int type)
sets the zone GUI type
Definition: StarZone.hxx:136
std::vector< librevenge::RVNGString > m_poolList
the pool name list
Definition: StarZone.hxx:308
a zone in a StarOffice file
Definition: StarZone.hxx:56
bool openVersionCompatHeader()
open a version compat header (version+size)
Definition: StarZone.cxx:372
bool openSDRHeader(std::string &magic)
open a zone header present in a SDR file
Definition: StarZone.cxx:403
int isCompatibleWith(int vers1, int vers2) const
checks if the document is compatible with vers1 and not vers2
Definition: StarZone.hxx:104