[Libreoffice-commits] .: binfilter/bf_svtools binfilter/inc
Caolán McNamara
caolan at kemper.freedesktop.org
Wed Aug 31 08:35:53 PDT 2011
binfilter/bf_svtools/source/filerec/svt_filerec.cxx | 85 ----
binfilter/inc/bf_svtools/filerec.hxx | 360 --------------------
2 files changed, 445 deletions(-)
New commits:
commit 4c4d0a7b76ed57bc1daf97bd1fb88ee40ea0cd25
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Aug 31 16:34:37 2011 +0100
more unused stuff
diff --git a/binfilter/bf_svtools/source/filerec/svt_filerec.cxx b/binfilter/bf_svtools/source/filerec/svt_filerec.cxx
index f69c6f1..1ff9c05 100644
--- a/binfilter/bf_svtools/source/filerec/svt_filerec.cxx
+++ b/binfilter/bf_svtools/source/filerec/svt_filerec.cxx
@@ -61,75 +61,11 @@ SV_IMPL_VARARR( SfxUINT32s, UINT32 );
um Calls zu sparen.
*/
-#define SFX_REC_MINI_HEADER(nPreTag,nStartPos,nEndPos) \
- ( UINT32(nPreTag) | \
- UINT32(nEndPos-nStartPos-SFX_REC_HEADERSIZE_MINI) << 8 )
-
#define SFX_REC_HEADER(nRecType,nContentTag,nContentVer) \
( UINT32(nRecType) | \
( UINT32(nContentVer) << 8 ) | \
( UINT32(nContentTag) << 16 ) )
-#define SFX_REC_CONTENT_HEADER(nContentVer,n1StStartPos,nCurStartPos) \
- ( UINT32(nContentVer) | \
- UINT32( nCurStartPos - n1StStartPos ) << 8 )
-
-//=========================================================================
-
-UINT32 SfxMiniRecordWriter::Close
-(
- bool bSeekToEndOfRec /* TRUE (default)
- Der Stream wird an das Ende des Records
- positioniert.
-
- FALSE
- Der Stream wird an den Anfang des
- Contents (also hinter den Header)
- positioniert.
- */
-)
-
-/* [Beschreibung]
-
- Diese Methode schlie\st den Record. Dabei wird haupts"achlich der
- Header geschrieben.
-
- Wurde der Header bereits geschrieben, hat der Aufruf keine Wirkung.
-
-
- [R"uckgabewert]
-
- UINT32 != 0
- Position im Stream, die direkt hinter dem Record liegt.
- 'bSeekToEndOfRecord==TRUE'
- => R"uckgabewert == aktuelle Stream-Position nach Aufruf
-
- == 0
- Der Header war bereits geschrieben worden.
-*/
-
-{
- // wurde der Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // Header an den Anfang des Records schreiben
- UINT32 nEndPos = _pStream->Tell();
- _pStream->Seek( _nStartPos );
- *_pStream << SFX_REC_MINI_HEADER( _nPreTag, _nStartPos, nEndPos );
-
- // je nachdem ans Ende des Records seeken oder hinter Header bleiben
- if ( bSeekToEndOfRec )
- _pStream->Seek( nEndPos );
-
- // Header wurde JETZT geschrieben
- _bHeaderOk = true;
- return nEndPos;
- }
-
- // Record war bereits geschlossen
- return 0;
-}
-
//=========================================================================
bool SfxMiniRecordReader::SetHeader_Impl( UINT32 nHeader )
@@ -251,27 +187,6 @@ SfxMiniRecordReader::SfxMiniRecordReader
//=========================================================================
-SfxSingleRecordWriter::SfxSingleRecordWriter
-(
- BYTE nRecordType, // f"ur Subklassen
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nContentTag, // Inhalts-Art-Kennung
- BYTE nContentVer // Inhalts-Versions-Kennung
-)
-
-/* [Beschreibung]
-
- Interner Ctor f"ur Subklassen.
-*/
-
-: SfxMiniRecordWriter( pStream, SFX_REC_PRETAG_EXT )
-{
- // Erweiterten Header hiner den des SfxMiniRec schreiben
- *pStream << SFX_REC_HEADER(nRecordType, nContentTag, nContentVer);
-}
-
-//=========================================================================
-
inline bool SfxSingleRecordReader::ReadHeader_Impl( USHORT nTypes )
/* [Beschreibung]
diff --git a/binfilter/inc/bf_svtools/filerec.hxx b/binfilter/inc/bf_svtools/filerec.hxx
index f7f1423..4e0957f 100644
--- a/binfilter/inc/bf_svtools/filerec.hxx
+++ b/binfilter/inc/bf_svtools/filerec.hxx
@@ -78,179 +78,6 @@ SV_DECL_VARARR( SfxUINT32s, UINT32, 8, 8 )
//------------------------------------------------------------------------
-/* [Fileformat]
-
- Jeder Record beginnt mit einem Byte, dem sogenannten 'Pre-Tag'.
-
- Ist dieses 'Pre-Tag' == 0x00, dann handelt es sich um einen Extended-
- Record, dessen Typ durch ein weiteres Byte an Position 5 n�her
- beschrieben wird:
-
- 0x01: SfxSingleRecord
- 0x02: SfxMultiFixRecord
- 0x03+0x04: SfxMultiVarRecord
- 0x07+0x08: SfxMultiMixRecord
- (Alle weiteren Record-Typ-Kennungen sind reserviert.)
-
- I.d.R. werden File-Formate schon aus Performance-Gr"unden so aufgebaut,
- da\s beim Lesen jeweils vorher schon feststeht, welcher Record-Typ
- vorliegt. Diese Kennung dient daher hautps"achlich der "Uberpr"ufung
- und File-Viewern, die das genaue File-Format (unterhalb der Records)
- nicht kennen.
-
- Der 'SfxMiniRecordReader' verf"ugt dazu auch "uber eine statische
- Methode 'ScanRecordType()', mit der festgestellt werden kann, welcher
- Record-Typ in dem "ubergebenen Stream zu finden ist.
-
- Ein 'Pre-Tag' mit dem Wert 0xFF ist als Terminator reserviert.
- Terminatoren werden verwendet, um das Suchen nach einem speziellen
- Record zu terminieren, d.h. ist er bis dorthin nicht gefunden, wird
- auch nicht weitergesucht.
-
- Bei allen anderen Werten des 'Pre-Tags' (also von 0x01 bis 0xFE)
- handelt es sich um einen zum SW3 kompatbilen Record, der hier
- 'SfxMiniRecord' genannt wird, er kann daher mit einem <SfxMiniRecordReader>
- gelesen werden.
-
- Beginnt ein Record mit 0x44 k"onnte es sich um einen Drawing-Engine-
- Record handeln. Dies ist dann der Fall, wenn die folgenden drei Bytes
- die Zeichenkette 'RMD' bzw. 'RVW' ergeben (zusammen mit 'D'==0x44
- ergibt dies die K"urzel f"ur 'DRaw-MoDel' bzw. 'DRaw-VieW'). Records
- dieser Art k"onnen von den hier dargestellten Klassen weder gelesen,
- noch in irgendeiner Weise interpretiert werden. Einzig die Methode
- 'ScanRecordType()' kann sie erkennen - weitere Behandlung obliegt
- jedoch der Anwendungsprogrammierung.
-
- Diese drei Bytes an den Positionen 2 bis 4 enthalten normalerweise
- die Gr"o\se des Records ohne Pre-Tag und Gr"o\sen-Bytes selbst,
- also die Restgr"o\se nach diesem 4-Byte-Header.
-
- Struktur des Mini-Records:
-
- 1 BYTE Pre-Tag
- 3 BYTE OffsetToEndOfRec
- OffsetToEndOfRec* 1 BYTE Content
-
- Bei den Extended-Reords folgt auf diesen 4-Byte-Header ein erweiterter
- Header, der zun"achst den o.g. Record-Typ, dann eine Versions-Kennung
- sowie ein Tag enth"alt, welches den Inhalt kennzeichnet.
-
- Struktur des Extended-Records:
-
- 1 BYTE Pre-Tag (==0x00)
- 3 BYTE OffsetToEndOfRec
- OffsetToEndOfRec* 1 BYTE Content
- 1 BYTE Record-Type
- 1 BYTE Version
- 2 BYTE Tag
- ContentSize* 1 BYTE Content
-
- (ContentSize = OffsetToEndOfRec - 8)
-
- [Anmerkung]
-
- Der Aufbau der Records wird wie folgt begr"undet:
-
- Der SW-Record-Typ war zuerst vorhanden, mu\ste also 1:1 "ubernommen
- werden. Zum Gl"uck wurden einige Record-Tags nicht verwendet, (Z.B.
- 0x00 und 0xFF).
- => 1. Byte 0x00 kann als Kennung f"ur erweiterten Record verwendet werden
- => 1. Byte 0xFF kann f"ur besondere Zwecke verwendet werden
-
- Egal welcher Record-Typ vorliegt, sollte eine Erkennung des Typs, ein
- Auslesen des Headers und ein "uberpspringen des Records m"oglich sein,
- ohne zu"uck-seeken zu m"ussen und ohne "uberfl"ussige Daten lesen zu
- m"ussen.
- => die Bytes 2-4 werden bei allen Records als Offset zum Ende des
- Records interpretiert, so da\s die Gesamt-Recors-Size sich wie
- folgt berechnet: sizeof(UINT32) + OffsetToEndOfRec
-
- Die Records sollten einfach zu parsen un einheitlich aufgebaut sein.
- => Sie bauen aufeinander auf, so ist z.B. der SfxMiniRecord in jedem
- anderen enthalten.
-
- Die Records sollten auch von denen der Drawing Enginge unterscheidbar
- sein. Diese beginnen mit 'DRMD' und 'DRVW'.
- => Mini-Records mit dem Pre-Tag 'D' d"urfen maximal 4MB gro\s sein,
- um nicht in diesen Kennungs-Bereich zu reichen.
-
- [Erweiterungen]
-
- Es ist geplant das File-Format so zu erweitern, da\s das High-Nibble
- des Record-Typs der erweiterten Records besondere Aufgaben "ubernehmen
- soll. Zum Beispiel ist geplant, Record-Contents als 'nur aus Records
- bestehend' zu kennzeichnen. Ein File-Viewer k"onnte sich dann automatisch
- durch solche Strukturen 'hangeln', ohne Gefahr zu laufen, auf Daten
- zu sto\sen, die sich zwar als Records interpretieren lassen, aber
- tats"achlis als 'flache' Daten geschrieben wurden. Die m"ogliche
- Erweiterung wird schon jetzt insofern vorbereitet, als da\s das
- High-Nibble des Typs bei Vergleichen nicht ber"ucksichtigt wird.
-*/
-
-//------------------------------------------------------------------------
-
-class SfxMiniRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein einfacher Record in einen Stream
- geschrieben werden, der sich durch ein BYTE-Tag identifiziert, sowie
- seine eigene L"ange speichert und somit auch von "alteren Versionen
- bzw. Readern, die diesen Record-Type (Tag) nicht kennen, "ubersprungen
- werden kann. Es wird keine Version-Nummer gespeichert.
-
- Alternativ kann die Gr"o\se fest angegeben werden oder sie wird
- automatisch aus der Differenz der Tell()-Angaben vor und nach dem
- Streamen des Inhalts ermittelt.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hintenan geh"angt werden!
-
- [Fileformat]
-
- 1* BYTE Content-Tag (!= 0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- SizeOfContent* BYTE Content
-
- [Beispiel]
-
- {
- SfxMiniRecordWriter aRecord( pStream, MY_TAG_X );
- *aRecord << aMember1;
- *aRecord << aMember2;
- }
-*/
-
-{
-protected:
- SvStream* _pStream; // <SvStream>, in dem der Record liegt
- UINT32 _nStartPos; // Start-Position des Gesamt-Records im Stream
- bool _bHeaderOk; /* TRUE, wenn der Header schon geschrieben ist; */
- BYTE _nPreTag; // in den Header zu schreibendes 'Pre-Tag'
-
-public:
- inline SfxMiniRecordWriter( SvStream *pStream,
- BYTE nTag );
- inline SfxMiniRecordWriter( SvStream *pStream, BYTE nTag,
- UINT32 nSize );
-
- inline ~SfxMiniRecordWriter();
-
- inline SvStream& operator*() const;
-
- inline void Reset();
-
- UINT32 Close( bool bSeekToEndOfRec = TRUE );
-
-private:
- // not implementend, not allowed
- SfxMiniRecordWriter( const SfxMiniRecordWriter& );
- SfxMiniRecordWriter& operator=(const SfxMiniRecordWriter&);
-};
-
-//------------------------------------------------------------------------
-
class SfxMiniRecordReader
/* [Beschreibung]
@@ -320,64 +147,10 @@ private:
//------------------------------------------------------------------------
-class SfxSingleRecordWriter: public SfxMiniRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein Record in einen Stream geschrieben
- werden, dessen einziger Inhalt sich durch ein UINT16-Tag und eine
- BYTE-Versions-Nummer identifiziert, sowie seine eigene L"ange speichert
- und somit auch von "alteren Versionen bzw. Readern, die diesen
- Record-Type (Tag) nicht kennen, "ubersprungen werden kann.
-
- Alternativ kann die Gr"o\se fest angegeben werden oder sie wird
- automatisch aus der Differenz der Tell()-Angaben vor und nach dem
- Streamen des Inhalts ermittelt.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hintenan geh"angt werden!
-
- [Fileformat]
-
- 1* BYTE Pre-Tag (!= 0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- 1* BYTE Record-Type (==SFX_REC_TYPE_SINGLE)
- 1* BYTE Content-Version
- 1* USHORT Content-Tag
- SizeOfContent* BYTE Content
-
- [Beispiel]
-
- {
- SfxSingleRecordWriter aRecord( pStream, MY_TAG_X, MY_VERSION );
- *aRecord << aMember1;
- *aRecord << aMember2;
- }
-*/
-
-{
-protected:
- SfxSingleRecordWriter( BYTE nRecordType,
- SvStream *pStream,
- UINT16 nTag, BYTE nCurVer );
-
-public:
- inline void Reset();
-
- UINT32 Close( bool bSeekToEndOfRec = TRUE );
-};
-
-//------------------------------------------------------------------------
-
class SfxSingleRecordReader: public SfxMiniRecordReader
/* [Beschreibung]
- Mit Instanzen dieser Klasse kann ein einfacher Record aus einem Stream
- gelesen werden, der mit der Klasse <SfxSingleRecordWriter> geschrieben
- wurde.
-
Es ist auch m"oglich, den Record zu "uberspringen, ohne sein internes
Format zu kennen.
@@ -482,99 +255,6 @@ public:
//=========================================================================
-inline SfxMiniRecordWriter::SfxMiniRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- BYTE nTag // Record-Tag zwischen 0x01 und 0xFE
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMiniRecord' an, dessen Content-Gr"o\se
- nicht bekannt ist, sondern nach dam Streamen des Contents errechnet
- werden soll.
-*/
-
-: _pStream( pStream ),
- _nStartPos( pStream->Tell() ),
- _bHeaderOk(false),
- _nPreTag( nTag )
-{
- DBG_ASSERT( _nPreTag != 0xFF, "invalid Tag" );
- DBG( DbgOutf( "SfxFileRec: writing record to %ul", pStream->Tell() ) );
-
- pStream->SeekRel( + SFX_REC_HEADERSIZE_MINI );
-}
-
-//-------------------------------------------------------------------------
-
-inline SfxMiniRecordWriter::SfxMiniRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- BYTE nTag, // Record-Tag zwischen 0x01 und 0xFE
- UINT32 nSize // Gr"o\se der Daten in Bytes
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMiniRecord' an, dessen Content-Gr"o\se
- von vornherein bekannt ist.
-*/
-
-: _pStream( pStream ),
- // _nTag( uninitialized ),
- // _nStarPos( uninitialized ),
- _bHeaderOk(true)
-{
- DBG_ASSERT( nTag != 0 && nTag != 0xFF, "invalid Tag" );
- DBG(_nStartPos = pStream->Tell());
- DBG( DbgOutf( "SfxFileRec: writing record to %ul", _nStartPos ) );
-
- *pStream << ( ( nTag << 24 ) | nSize );
-}
-
-//-------------------------------------------------------------------------
-
-inline SfxMiniRecordWriter::~SfxMiniRecordWriter()
-
-/* [Beschreibung]
-
- Der Dtor der Klasse <SfxMiniRecordWriter> schlie\st den Record
- automatisch, falls <SfxMiniRecordWriter::Close()> nicht bereits
- explizit gerufen wurde.
-*/
-
-{
- // wurde der Header noch nicht geschrieben oder mu\s er gepr"uft werden
- if ( !_bHeaderOk)
- Close();
-}
-
-//-------------------------------------------------------------------------
-
-inline SvStream& SfxMiniRecordWriter::operator*() const
-
-/* [Beschreibung]
-
- Dieser Operator liefert den Stream, in dem der Record liegt.
- Der Record darf noch nicht geschlossen worden sein.
-*/
-
-{
- DBG_ASSERT( !_bHeaderOk, "getting Stream of closed record" );
- return *_pStream;
-}
-
-//-------------------------------------------------------------------------
-
-inline void SfxMiniRecordWriter::Reset()
-{
- _pStream->Seek( _nStartPos + SFX_REC_HEADERSIZE_MINI );
- _bHeaderOk = false;
-}
-
-//=========================================================================
-
inline SfxMiniRecordReader::~SfxMiniRecordReader()
/* [Beschreibung]
@@ -654,46 +334,6 @@ inline SvStream& SfxMiniRecordReader::operator*() const
//=========================================================================
-inline UINT32 SfxSingleRecordWriter::Close( bool bSeekToEndOfRec )
-
-// siehe <SfxMiniRecordWriter::Close(bool)>
-
-{
- UINT32 nRet = 0;
-
- // wurde der Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // Basisklassen-Header schreiben
- UINT32 nEndPos = SfxMiniRecordWriter::Close( bSeekToEndOfRec );
-
- // ggf. ans Ende des eigenen Headers seeken oder hinter Rec bleiben
- if ( !bSeekToEndOfRec )
- _pStream->SeekRel( SFX_REC_HEADERSIZE_SINGLE );
- nRet = nEndPos;
- }
-#ifdef DBG_UTIL
- else
- // Basisklassen-Header pr"ufen
- SfxMiniRecordWriter::Close( bSeekToEndOfRec );
-#endif
-
- // Record war bereits geschlossen
-// nRet = 0;
- return nRet;
-}
-
-//-------------------------------------------------------------------------
-
-inline void SfxSingleRecordWriter::Reset()
-{
- _pStream->Seek( _nStartPos + SFX_REC_HEADERSIZE_MINI +
- SFX_REC_HEADERSIZE_SINGLE );
- _bHeaderOk = false;
-}
-
-//=========================================================================
-
inline UINT16 SfxSingleRecordReader::GetTag() const
/* [Beschreibung]
More information about the Libreoffice-commits
mailing list