summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-08-08 13:24:31 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-08-08 20:56:44 +0200
commitc605c8d0787f93019722a4146750e01d63e81e07 (patch)
treecfb63eb86d3f93027a018d6ae0739bb7e80eacfb
parent61d49afadb2badc7572b04c73ee682afde1d2e7b (diff)
SvPersistStream dead
since commit 1e4b1e4a1aca3b333820b0a865997e6f62e80064 "Removing unused SfxItemPool serialisation from editeng" Change-Id: I8a3cd36a13b7d2322047c2035e0f23c70ca9cdf0 Reviewed-on: https://gerrit.libreoffice.org/40880 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--editeng/source/items/flditem.cxx281
-rw-r--r--editeng/source/items/svdfield.cxx14
-rw-r--r--idl/inc/basobj.hxx2
-rw-r--r--include/editeng/flditem.hxx1
-rw-r--r--include/svx/svdfield.hxx29
-rw-r--r--include/tools/pstm.hxx135
-rw-r--r--sc/source/ui/app/scdll.cxx9
-rw-r--r--sd/source/ui/app/sddll.cxx4
-rw-r--r--svx/source/svdraw/svdotxfl.cxx19
-rw-r--r--sw/source/uibase/app/swdll.cxx4
-rw-r--r--tools/Library_tl.mk1
-rw-r--r--tools/source/ref/pstm.cxx516
12 files changed, 20 insertions, 995 deletions
diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx
index 3ab2c2623df3..cbcb9ce9215c 100644
--- a/editeng/source/items/flditem.cxx
+++ b/editeng/source/items/flditem.cxx
@@ -224,7 +224,7 @@ SvxFieldData* SvxFieldData::Create(const uno::Reference<text::XTextContent>& xTe
}
-SV_IMPL_PERSIST1( SvxFieldData, SvPersistBase );
+SV_IMPL_PERSIST1( SvxFieldData );
SvxFieldData::SvxFieldData()
@@ -251,16 +251,6 @@ bool SvxFieldData::operator==( const SvxFieldData& rFld ) const
}
-void SvxFieldData::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-
-void SvxFieldData::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
-
MetaAction* SvxFieldData::createBeginComment() const
{
return new MetaCommentAction( "FIELD_SEQ_BEGIN" );
@@ -314,7 +304,7 @@ bool SvxFieldItem::operator==( const SfxPoolItem& rItem ) const
// The following are the derivatives of SvxFieldData ...
-SV_IMPL_PERSIST1( SvxDateField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxDateField );
SvxDateField::SvxDateField()
@@ -351,26 +341,6 @@ bool SvxDateField::operator==( const SvxFieldData& rOther ) const
}
-void SvxDateField::Load( SvPersistStream & rStm )
-{
- sal_uInt16 nType, nFormat;
-
- rStm.ReadInt32( nFixDate );
- rStm.ReadUInt16( nType );
- rStm.ReadUInt16( nFormat );
-
- eType = (SvxDateType)nType;
- eFormat= (SvxDateFormat)nFormat;
-}
-
-
-void SvxDateField::Save( SvPersistStream & rStm )
-{
- rStm.WriteInt32( nFixDate );
- rStm.WriteUInt16( (sal_uInt16)eType );
- rStm.WriteUInt16( eFormat );
-}
-
OUString SvxDateField::GetFormatted( SvNumberFormatter& rFormatter, LanguageType eLang ) const
{
@@ -448,7 +418,7 @@ MetaAction* SvxDateField::createBeginComment() const
return new MetaCommentAction( "FIELD_SEQ_BEGIN" );
}
-SV_IMPL_PERSIST1( SvxURLField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxURLField );
SvxURLField::SvxURLField()
@@ -483,58 +453,6 @@ bool SvxURLField::operator==( const SvxFieldData& rOther ) const
}
-static void write_unicode( SvPersistStream & rStm, const OUString& rString )
-{
- sal_uInt16 nL = sal::static_int_cast<sal_uInt16>(rString.getLength());
- rStm.WriteUInt16( nL );
- //endian specific?, yipes!
- rStm.WriteBytes( rString.getStr(), nL*sizeof(sal_Unicode) );
-}
-
-static OUString read_unicode( SvPersistStream & rStm )
-{
- rtl_uString *pStr = nullptr;
- sal_uInt16 nL = 0;
- rStm.ReadUInt16( nL );
- const size_t nMaxRecords = rStm.remainingSize() / sizeof(sal_Unicode);
- if (nL > nMaxRecords)
- {
- SAL_WARN("editeng", "Parsing error: " << nMaxRecords <<
- " max possible entries, but " << nL << " claimed, truncating");
- nL = nMaxRecords;
- }
- if (nL)
- {
- pStr = rtl_uString_alloc(nL);
- //endian specific?, yipes!
- rStm.ReadBytes(pStr->buffer, nL*sizeof(sal_Unicode));
- }
- //take ownership of buffer and return, otherwise return empty string
- return pStr ? OUString(pStr, SAL_NO_ACQUIRE) : OUString();
-}
-
-void SvxURLField::Load( SvPersistStream & rStm )
-{
- sal_uInt16 nFormat = 0;
-
- rStm.ReadUInt16( nFormat );
- eFormat= (SvxURLFormat)nFormat;
-
- aURL = read_unicode( rStm );
- aRepresentation = read_unicode( rStm );
- aTargetFrame = read_unicode( rStm );
-}
-
-
-void SvxURLField::Save( SvPersistStream & rStm )
-{
- rStm.WriteUInt16( eFormat );
-
- write_unicode( rStm, aURL );
- write_unicode( rStm, aRepresentation );
- write_unicode( rStm, aTargetFrame );
-}
-
MetaAction* SvxURLField::createBeginComment() const
{
// #i46618# Adding target URL to metafile comment
@@ -548,7 +466,7 @@ MetaAction* SvxURLField::createBeginComment() const
// SvxPageTitleField methods
//
-SV_IMPL_PERSIST1( SvxPageTitleField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxPageTitleField );
SvxPageTitleField::SvxPageTitleField() {}
@@ -562,14 +480,6 @@ bool SvxPageTitleField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxPageTitleField *>(&rCmp) != nullptr );
}
-void SvxPageTitleField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxPageTitleField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
MetaAction* SvxPageTitleField::createBeginComment() const
{
return new MetaCommentAction( "FIELD_SEQ_BEGIN;PageTitleField" );
@@ -581,7 +491,7 @@ MetaAction* SvxPageTitleField::createBeginComment() const
// The fields that were removed from Calc:
-SV_IMPL_PERSIST1( SvxPageField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxPageField );
SvxPageField::SvxPageField() {}
@@ -595,21 +505,13 @@ bool SvxPageField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxPageField *>(&rCmp) != nullptr );
}
-void SvxPageField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxPageField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
MetaAction* SvxPageField::createBeginComment() const
{
return new MetaCommentAction( "FIELD_SEQ_BEGIN;PageField" );
}
-SV_IMPL_PERSIST1( SvxPagesField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxPagesField );
SvxPagesField::SvxPagesField() {}
@@ -623,15 +525,7 @@ bool SvxPagesField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxPagesField *>(&rCmp) != nullptr);
}
-void SvxPagesField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxPagesField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
-SV_IMPL_PERSIST1( SvxTimeField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxTimeField );
SvxTimeField::SvxTimeField() {}
@@ -645,20 +539,12 @@ bool SvxTimeField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxTimeField *>(&rCmp) != nullptr);
}
-void SvxTimeField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxTimeField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
MetaAction* SvxTimeField::createBeginComment() const
{
return new MetaCommentAction( "FIELD_SEQ_BEGIN" );
}
-SV_IMPL_PERSIST1( SvxFileField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxFileField );
SvxFileField::SvxFileField() {}
@@ -672,15 +558,7 @@ bool SvxFileField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxFileField *>(&rCmp) != nullptr );
}
-void SvxFileField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxFileField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
-SV_IMPL_PERSIST1( SvxTableField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxTableField );
SvxTableField::SvxTableField() : mnTab(0) {}
@@ -705,19 +583,10 @@ bool SvxTableField::operator==( const SvxFieldData& rCmp ) const
return mnTab == static_cast<const SvxTableField&>(rCmp).mnTab;
}
-void SvxTableField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxTableField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
-
// SvxExtTimeField
-SV_IMPL_PERSIST1( SvxExtTimeField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxExtTimeField );
SvxExtTimeField::SvxExtTimeField()
@@ -754,27 +623,6 @@ bool SvxExtTimeField::operator==( const SvxFieldData& rOther ) const
}
-void SvxExtTimeField::Load( SvPersistStream & rStm )
-{
- sal_uInt16 nType, nFormat;
-
- rStm.ReadInt64(m_nFixTime);
- rStm.ReadUInt16( nType );
- rStm.ReadUInt16( nFormat );
-
- eType = (SvxTimeType) nType;
- eFormat= (SvxTimeFormat) nFormat;
-}
-
-
-void SvxExtTimeField::Save( SvPersistStream & rStm )
-{
- rStm.WriteInt64(m_nFixTime);
- rStm.WriteUInt16( eType );
- rStm.WriteUInt16( eFormat );
-}
-
-
OUString SvxExtTimeField::GetFormatted( SvNumberFormatter& rFormatter, LanguageType eLang ) const
{
tools::Time aTime( tools::Time::EMPTY );
@@ -855,7 +703,7 @@ MetaAction* SvxExtTimeField::createBeginComment() const
// SvxExtFileField
-SV_IMPL_PERSIST1( SvxExtFileField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxExtFileField );
SvxExtFileField::SvxExtFileField()
@@ -891,31 +739,6 @@ bool SvxExtFileField::operator==( const SvxFieldData& rOther ) const
}
-void SvxExtFileField::Load( SvPersistStream & rStm )
-{
- sal_uInt16 nType, nFormat;
-
- // UNICODE: rStm >> aFile;
- aFile = rStm.ReadUniOrByteString(rStm.GetStreamCharSet());
-
- rStm.ReadUInt16( nType );
- rStm.ReadUInt16( nFormat );
-
- eType = (SvxFileType) nType;
- eFormat= (SvxFileFormat) nFormat;
-}
-
-
-void SvxExtFileField::Save( SvPersistStream & rStm )
-{
- // UNICODE: rStm << aFile;
- rStm.WriteUniOrByteString(aFile, rStm.GetStreamCharSet());
-
- rStm.WriteUInt16( eType );
- rStm.WriteUInt16( eFormat );
-}
-
-
OUString SvxExtFileField::GetFormatted() const
{
OUString aString;
@@ -995,7 +818,7 @@ OUString SvxExtFileField::GetFormatted() const
// SvxAuthorField
-SV_IMPL_PERSIST1( SvxAuthorField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxAuthorField );
SvxAuthorField::SvxAuthorField()
@@ -1038,33 +861,6 @@ bool SvxAuthorField::operator==( const SvxFieldData& rOther ) const
}
-void SvxAuthorField::Load( SvPersistStream & rStm )
-{
- sal_uInt16 nType = 0, nFormat = 0;
-
- aName = read_unicode( rStm );
- aFirstName = read_unicode( rStm );
- aShortName = read_unicode( rStm );
-
- rStm.ReadUInt16( nType );
- rStm.ReadUInt16( nFormat );
-
- eType = (SvxAuthorType) nType;
- eFormat= (SvxAuthorFormat) nFormat;
-}
-
-
-void SvxAuthorField::Save( SvPersistStream & rStm )
-{
- write_unicode( rStm, aName );
- write_unicode( rStm, aFirstName );
- write_unicode( rStm, aShortName );
-
- rStm.WriteUInt16( eType );
- rStm.WriteUInt16( eFormat );
-}
-
-
OUString SvxAuthorField::GetFormatted() const
{
OUString aString;
@@ -1090,29 +886,7 @@ OUString SvxAuthorField::GetFormatted() const
return aString;
}
-static SvClassManager* pClassMgr=nullptr;
-
-SvClassManager& SvxFieldItem::GetClassManager()
-{
- if ( !pClassMgr )
- {
- pClassMgr = new SvClassManager;
- pClassMgr->Register(SvxFieldData::StaticClassId(), SvxFieldData::CreateInstance);
- pClassMgr->Register(SvxURLField::StaticClassId(), SvxURLField::CreateInstance);
- pClassMgr->Register(SvxDateField::StaticClassId(), SvxDateField::CreateInstance);
- pClassMgr->Register(SvxPageField::StaticClassId(), SvxPageField::CreateInstance);
- pClassMgr->Register(SvxPageTitleField::StaticClassId(), SvxPageTitleField::CreateInstance);
- pClassMgr->Register(SvxTimeField::StaticClassId(), SvxTimeField::CreateInstance);
- pClassMgr->Register(SvxExtTimeField::StaticClassId(), SvxExtTimeField::CreateInstance);
- pClassMgr->Register(SvxExtFileField::StaticClassId(), SvxExtFileField::CreateInstance);
- pClassMgr->Register(SvxAuthorField::StaticClassId(), SvxAuthorField::CreateInstance);
- }
-
- return *pClassMgr;
-}
-
-
-SV_IMPL_PERSIST1( SvxHeaderField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxHeaderField );
SvxHeaderField::SvxHeaderField() {}
@@ -1126,16 +900,8 @@ bool SvxHeaderField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxHeaderField *>(&rCmp) != nullptr );
}
-void SvxHeaderField::Load( SvPersistStream & /*rStm*/ )
-{
-}
+SV_IMPL_PERSIST1( SvxFooterField );
-void SvxHeaderField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
-
-SV_IMPL_PERSIST1( SvxFooterField, SvxFieldData );
SvxFooterField::SvxFooterField() {}
SvxFieldData* SvxFooterField::Clone() const
@@ -1148,16 +914,7 @@ bool SvxFooterField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxFooterField *>(&rCmp) != nullptr );
}
-void SvxFooterField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxFooterField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
-
-SV_IMPL_PERSIST1( SvxDateTimeField, SvxFieldData );
+SV_IMPL_PERSIST1( SvxDateTimeField );
SvxFieldData* SvxDateTimeField::Clone() const
{
@@ -1169,14 +926,6 @@ bool SvxDateTimeField::operator==( const SvxFieldData& rCmp ) const
return ( dynamic_cast< const SvxDateTimeField *>(&rCmp) != nullptr );
}
-void SvxDateTimeField::Load( SvPersistStream & /*rStm*/ )
-{
-}
-
-void SvxDateTimeField::Save( SvPersistStream & /*rStm*/ )
-{
-}
-
SvxDateTimeField::SvxDateTimeField() {}
OUString SvxDateTimeField::GetFormatted(
diff --git a/editeng/source/items/svdfield.cxx b/editeng/source/items/svdfield.cxx
index c0f91f1e2780..9ff72de11fdd 100644
--- a/editeng/source/items/svdfield.cxx
+++ b/editeng/source/items/svdfield.cxx
@@ -20,7 +20,7 @@
#include <editeng/measfld.hxx>
-SV_IMPL_PERSIST1(SdrMeasureField,SvxFieldData);
+SV_IMPL_PERSIST1(SdrMeasureField);
SdrMeasureField::~SdrMeasureField()
{
@@ -36,16 +36,4 @@ bool SdrMeasureField::operator==(const SvxFieldData& rSrc) const
return eMeasureFieldKind == static_cast<const SdrMeasureField&>(rSrc).GetMeasureFieldKind();
}
-void SdrMeasureField::Load(SvPersistStream& rIn)
-{
- sal_uInt16 nFieldKind;
- rIn.ReadUInt16( nFieldKind );
- eMeasureFieldKind=(SdrMeasureFieldKind)nFieldKind;
-}
-
-void SdrMeasureField::Save(SvPersistStream& rOut)
-{
- rOut.WriteUInt16( eMeasureFieldKind );
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/idl/inc/basobj.hxx b/idl/inc/basobj.hxx
index cf205644ca17..a1ede771eee9 100644
--- a/idl/inc/basobj.hxx
+++ b/idl/inc/basobj.hxx
@@ -82,7 +82,7 @@ public:
}
};
-class SvMetaObject : public SvRttiBase
+class SvMetaObject : public SvRefBase
{
protected:
OString aName;
diff --git a/include/editeng/flditem.hxx b/include/editeng/flditem.hxx
index ed1a7edf020e..afafedb69b40 100644
--- a/include/editeng/flditem.hxx
+++ b/include/editeng/flditem.hxx
@@ -76,7 +76,6 @@ public:
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
const SvxFieldData* GetField() const { return mxField.get(); }
- static SvClassManager& GetClassManager();
};
diff --git a/include/svx/svdfield.hxx b/include/svx/svdfield.hxx
deleted file mode 100644
index 60c95e7ad212..000000000000
--- a/include/svx/svdfield.hxx
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_SVX_SVDFIELD_HXX
-#define INCLUDED_SVX_SVDFIELD_HXX
-
-#include <svx/svxdllapi.h>
-
-void SVX_DLLPUBLIC SdrRegisterFieldClasses();
-
-#endif // INCLUDED_SVX_SVDFIELD_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/tools/pstm.hxx b/include/tools/pstm.hxx
index 6292a52c897f..1f55c7c0fa0f 100644
--- a/include/tools/pstm.hxx
+++ b/include/tools/pstm.hxx
@@ -26,147 +26,18 @@
#include <map>
#include <unordered_map>
-#define ERRCODE_IO_NOFACTORY ERRCODE_IO_WRONGFORMAT
-
-class SvPersistBase;
-
-typedef void * (*SvCreateInstancePersist)( SvPersistBase ** );
-
-#define SV_CLASS_REGISTER( Class ) \
- Register( Class::StaticClassId(), Class::CreateInstance )
-
-class TOOLS_DLLPUBLIC SvClassManager
-{
- typedef std::unordered_map<sal_Int32, SvCreateInstancePersist> Map;
- Map aAssocTable;
-
-public:
- void Register( sal_Int32 nClassId, SvCreateInstancePersist pFunc );
- SvCreateInstancePersist Get( sal_Int32 nClassId );
-};
-
-class TOOLS_DLLPUBLIC SvRttiBase : public SvRefBase
-{
-public:
-};
-
#define SV_DECL_PERSIST1( Class, CLASS_ID ) \
static sal_Int32 StaticClassId() { return CLASS_ID; } \
- static void * CreateInstance( SvPersistBase ** ppBase ); \
- friend SvPersistStream& operator >> ( SvPersistStream & rStm, \
- Class *& rpObj); \
virtual sal_Int32 GetClassId() const override; \
- virtual void Load( SvPersistStream & ) override; \
- virtual void Save( SvPersistStream & ) override;
-#define SV_IMPL_PERSIST1( Class, Super1 ) \
- void * Class::CreateInstance( SvPersistBase ** ppBase )\
- { \
- Class * p = new Class(); \
- *ppBase = p; \
- return p; \
- } \
- sal_Int32 Class::GetClassId() const \
+#define SV_IMPL_PERSIST1( Class ) \
+ sal_Int32 Class::GetClassId() const \
{ return StaticClassId(); } \
- SvPersistStream& operator >> (SvPersistStream & rStm, Class *& rpObj)\
- { \
- SvPersistBase * pObj; \
- rStm >> pObj; \
- rpObj = dynamic_cast< Class*>( pObj ); \
- return rStm; \
- }
-
-class SvPersistStream;
-class SvPersistBase : public SvRttiBase
+class SvPersistBase : public SvRefBase
{
public:
virtual sal_Int32 GetClassId() const = 0;
- virtual void Load( SvPersistStream & ) = 0;
- virtual void Save( SvPersistStream & ) = 0;
- TOOLS_DLLPUBLIC friend SvPersistStream& operator >> ( SvPersistStream & rStm,
- SvPersistBase *& rpObj );
-};
-
-class SvStream;
-
-/** Persistent Stream
-
- This class provides accessor to storing and loading runtime objects.
- All dependent objects have to be stored as well.
- In order to load objects automatically, every object class must
- provide a Factory method to read an object from stream.
- The list of all classes is stored in a <SvClassManager> object
- and is sent to SvPersistStream upon initialization.
- By using the Method SvPersistStream::WriteCompressed and
- SvPersistStream::ReadCompressed, compressed sal_uInt32 values may be
- written to / read from the Stream.
- Several helper methods exists for writing and reading
- object lengths to the stream: SvPersistStream::WriteDummyLen,
- SvPersistStream::WriteLen and SvPersistStream::ReadLen.
-
- [Example]
-
- One example is described in the constructor.
- Assume a ring-like dependency, where A references B,
- B itself references C, and C references to both D and A.
-
- The order of the objects upon saving and loading does not matter,
- as long objects are loaded in the same order they were stored.
-
- Saving: Loading:
- A,B,C,D A,B,C,D correct
- B,A,C,D B,A,C,D correct
- C,A,B,D A,B,C,D wrong
- A,B,C,D A,B,C wrong
-
- @note The file formats DBG_UTIL and !DBG_UTIL differ, but we can read from
- both versions.
-*/
-class TOOLS_DLLPUBLIC SvPersistStream : public SvStream
-{
-public:
- typedef UniqueIndex<SvPersistBase>::Index Index;
-
-private:
- typedef std::map<SvPersistBase*, Index> PersistBaseMap;
-
- SvClassManager & rClassMgr;
- SvStream * pStm;
- PersistBaseMap aPTable; // reversed pointer and key
- UniqueIndex<SvPersistBase>
- aPUIdx;
- Index nStartIdx;
-
- virtual std::size_t GetData(void* pData, std::size_t nSize) override;
- virtual std::size_t PutData(const void* pData, std::size_t nSize) override;
- virtual sal_uInt64 SeekPos(sal_uInt64 nPos) override;
- virtual void FlushData() override;
-
-protected:
- void WriteObj( sal_uInt8 nHdr, SvPersistBase * pObj );
- void ReadObj( SvPersistBase * & rpObj );
-
-public:
- virtual void ResetError() override;
-
- SvPersistStream( SvClassManager &, SvStream * pStream );
- virtual ~SvPersistStream() override;
-
- SvPersistBase * GetObject( Index nIdx ) const;
- Index GetIndex( SvPersistBase * ) const;
-
- static void WriteCompressed( SvStream & rStm, sal_uInt32 nVal );
- static sal_uInt32 ReadCompressed( SvStream & rStm );
-
- sal_uInt32 WriteDummyLen();
- void WriteLen( sal_uInt32 nLenPos );
- sal_uInt32 ReadLen( sal_uInt32 * pTestPos );
-
- SvPersistStream& WritePointer( SvPersistBase * pObj );
- SvPersistStream& ReadPointer( SvPersistBase * & rpObj );
- TOOLS_DLLPUBLIC friend SvPersistStream& WriteSvPersistBase(SvPersistStream &, SvPersistBase *);
- TOOLS_DLLPUBLIC friend SvPersistStream& operator >> (SvPersistStream &, SvPersistBase * &);
};
#endif
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index daa0c7cf06ea..7c555111b6db 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -100,7 +100,6 @@
#include <svx/imapdlg.hxx>
#include "editutil.hxx"
-#include <svx/svdfield.hxx>
#include "dwfunctr.hxx"
#include "acredlin.hxx"
@@ -262,14 +261,6 @@ void ScDLL::Init()
sc::SearchResultsDlgWrapper::RegisterChildWindow(false, pMod);
ScCondFormatDlgWrapper::RegisterChildWindow(false, pMod);
- // EditEngine Field; insofar not already defined in OfficeApplication::Init
- SvClassManager& rClassManager = SvxFieldItem::GetClassManager();
- rClassManager.Register(SvxPagesField::StaticClassId(), SvxPagesField::CreateInstance);
- rClassManager.Register(SvxFileField::StaticClassId(), SvxFileField::CreateInstance);
- rClassManager.Register(SvxTableField::StaticClassId(), SvxTableField::CreateInstance);
-
- SdrRegisterFieldClasses(); // Register SvDraw fields
-
// Add 3DObject Factory
E3dObjFactory();
diff --git a/sd/source/ui/app/sddll.cxx b/sd/source/ui/app/sddll.cxx
index 8b8430d32d56..b487624c151b 100644
--- a/sd/source/ui/app/sddll.cxx
+++ b/sd/source/ui/app/sddll.cxx
@@ -25,7 +25,6 @@
#include <unotools/configmgr.hxx>
#include <unotools/moduleoptions.hxx>
#include <svx/fmobjfac.hxx>
-#include <svx/svdfield.hxx>
#include <svx/objfac3d.hxx>
#include <vcl/svapp.hxx>
@@ -277,9 +276,6 @@ void SdDLL::Init()
// register your controllers here
RegisterControllers(pModule);
- // register SvDraw-Fields
- SdrRegisterFieldClasses();
-
// register 3D-object-factory
E3dObjFactory();
diff --git a/svx/source/svdraw/svdotxfl.cxx b/svx/source/svdraw/svdotxfl.cxx
index 154e7707d73a..4fe84291dc80 100644
--- a/svx/source/svdraw/svdotxfl.cxx
+++ b/svx/source/svdraw/svdotxfl.cxx
@@ -18,27 +18,8 @@
*/
#include <editeng/eeitem.hxx>
-
#include <editeng/measfld.hxx>
#include <svx/svdotext.hxx>
-#include <svx/svdfield.hxx>
-
-static bool bInit = false;
-
-// Do not remove this, it is still used in src536a!
-void SdrRegisterFieldClasses()
-{
- if ( !bInit )
- {
- SvxFieldItem::GetClassManager().SV_CLASS_REGISTER(SdrMeasureField);
- SvxFieldItem::GetClassManager().SV_CLASS_REGISTER(SvxHeaderField);
- SvxFieldItem::GetClassManager().SV_CLASS_REGISTER(SvxFooterField);
- SvxFieldItem::GetClassManager().SV_CLASS_REGISTER(SvxDateTimeField);
- bInit = true;
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////// */
bool SdrTextObj::CalcFieldValue(const SvxFieldItem& /*rField*/, sal_Int32 /*nPara*/, sal_uInt16 /*nPos*/,
bool /*bEdit*/, Color*& /*rpTxtColor*/, Color*& /*rpFldColor*/, OUString& /*rRet*/) const
diff --git a/sw/source/uibase/app/swdll.cxx b/sw/source/uibase/app/swdll.cxx
index 201fa02d1384..d47a700af7a2 100644
--- a/sw/source/uibase/app/swdll.cxx
+++ b/sw/source/uibase/app/swdll.cxx
@@ -40,7 +40,6 @@
#include <comphelper/processfactory.hxx>
#include <svx/fmobjfac.hxx>
-#include <svx/svdfield.hxx>
#include <svx/objfac3d.hxx>
#include <editeng/acorrcfg.hxx>
@@ -110,9 +109,6 @@ SwDLL::SwDLL()
pDocFact->SetDocumentServiceName("com.sun.star.text.TextDocument");
}
- // register SvDraw-Fields
- SdrRegisterFieldClasses();
-
// register 3D-object-Factory
E3dObjFactory();
diff --git a/tools/Library_tl.mk b/tools/Library_tl.mk
index d0d9f4516c2b..9b3a9d984bd6 100644
--- a/tools/Library_tl.mk
+++ b/tools/Library_tl.mk
@@ -70,7 +70,6 @@ $(eval $(call gb_Library_add_exception_objects,tl,\
tools/source/misc/cpuid \
tools/source/misc/extendapplicationenvironment \
tools/source/ref/globname \
- tools/source/ref/pstm \
tools/source/ref/ref \
tools/source/stream/stream \
tools/source/stream/vcompat \
diff --git a/tools/source/ref/pstm.cxx b/tools/source/ref/pstm.cxx
deleted file mode 100644
index 41b8cacf3135..000000000000
--- a/tools/source/ref/pstm.cxx
+++ /dev/null
@@ -1,516 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <tools/pstm.hxx>
-#include <rtl/strbuf.hxx>
-#include <osl/diagnose.h>
-#include <sal/log.hxx>
-
-#define STOR_NO_OPTIMIZE
-
-void SvClassManager::Register( sal_Int32 nClassId, SvCreateInstancePersist pFunc )
-{
-#ifdef DBG_UTIL
- SvCreateInstancePersist p;
- p = Get( nClassId );
- assert( (!p || p == pFunc) && "register class with same id");
-#endif
- aAssocTable.insert(Map::value_type(nClassId, pFunc));
-}
-
-SvCreateInstancePersist SvClassManager::Get( sal_Int32 nClassId )
-{
- Map::const_iterator i(aAssocTable.find(nClassId));
- return i == aAssocTable.end() ? nullptr : i->second;
-}
-
-/** Constructor
-
- @param rMgr Stores factories for objects that can persisted
- @param pStream This stream is used as the medium for PersistStream
- @param nStartIdxP Start value for object identifier (set > 0 )
-
- @warning Objects rMgr and pStream must not be manipulated while used in
- SvPersistStream. An Exception to this is pvStream
- (cf. <SvPersistStream::SetStream>).
- @see SvPersistStream::SetStream
-*/
-SvPersistStream::SvPersistStream( SvClassManager & rMgr, SvStream * pStream )
- : rClassMgr( rMgr )
- , pStm( pStream )
- , aPUIdx( UniqueIndex<SvPersistBase>::Index(1) )
- , nStartIdx( 1 )
-{
- m_isWritable = true;
- if( pStm )
- {
- SetVersion( pStm->GetVersion() );
- SetError( pStm->GetError() );
- SyncSvStream( pStm->Tell() );
- }
-}
-
-SvPersistStream::~SvPersistStream()
-{
- if( pStm != nullptr )
- {
- SyncSysStream();
- pStm->SetError( GetError() );
- pStm = nullptr;
- }
-}
-
-void SvPersistStream::ResetError()
-{
- SvStream::ResetError();
- assert(pStm && "stream not set");
- pStm->ResetError();
-}
-
-std::size_t SvPersistStream::GetData( void* pData, std::size_t nSize )
-{
- assert(pStm && "stream not set");
- std::size_t const nRet = pStm->ReadBytes( pData, nSize );
- SetError( pStm->GetError() );
- return nRet;
-}
-
-std::size_t SvPersistStream::PutData( const void* pData, std::size_t nSize )
-{
- assert(pStm && "stream not set");
- std::size_t const nRet = pStm->WriteBytes( pData, nSize );
- SetError( pStm->GetError() );
- return nRet;
-}
-
-sal_uInt64 SvPersistStream::SeekPos(sal_uInt64 const nPos)
-{
- assert(pStm && "stream not set");
- sal_uInt64 nRet = pStm->Seek( nPos );
- SetError( pStm->GetError() );
- return nRet;
-}
-
-void SvPersistStream::FlushData()
-{
-}
-
-SvPersistStream::Index SvPersistStream::GetIndex( SvPersistBase * pObj ) const
-{
- PersistBaseMap::const_iterator it = aPTable.find( pObj );
- if( it == aPTable.end() )
- {
- return Index(0);
- }
- return it->second;
-}
-
-SvPersistBase * SvPersistStream::GetObject( Index nIdx ) const
-{
- if( nIdx >= nStartIdx )
- return aPUIdx.Get( nIdx );
- return nullptr;
-}
-
-#define LEN_1 0x80
-#define LEN_2 0x40
-#define LEN_4 0x20
-#define LEN_5 0x10
-
-/** Reads a compressed word from the stream.
-
- For details on what format is used for compression, see
- <SvPersistStream::WriteCompressed>.
-
- @param rStm Source to read compressed data from
-
- @return Uncompressed word
- @see SvPersistStream::WriteCompressed
-*/
-sal_uInt32 SvPersistStream::ReadCompressed( SvStream & rStm )
-{
- sal_uInt32 nRet(0);
- sal_uInt8 nMask;
- rStm.ReadUChar( nMask );
- if( nMask & LEN_1 )
- nRet = ~LEN_1 & nMask;
- else if( nMask & LEN_2 )
- {
- nRet = ~LEN_2 & nMask;
- nRet <<= 8;
- rStm.ReadUChar( nMask );
- nRet |= nMask;
- }
- else if( nMask & LEN_4 )
- {
- nRet = ~LEN_4 & nMask;
- nRet <<= 8;
- rStm.ReadUChar( nMask );
- nRet |= nMask;
- nRet <<= 16;
- sal_uInt16 n;
- rStm.ReadUInt16( n );
- nRet |= n;
- }
- else if( nMask & LEN_5 )
- {
- if( nMask & 0x0F )
- {
- rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
- OSL_FAIL( "format error" );
- }
- rStm.ReadUInt32( nRet );
- }
- else
- {
- rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
- OSL_FAIL( "format error" );
- }
- return nRet;
-}
-
-/** Writes compressed stream
-
- @param rStm Source for writing compressed data
- @param nVal This value will be compressed and written
-
- nVal is compressed and written to stream using the following algorithm
- nVal < 0x80 => 0x80 + nVal of size 1 Byte.
- nVal < 0x4000 => 0x4000 + nVal of size 2 Byte.
- nVal < 0x20000000 => 0x20000000 + nVal of size 4 Byte.
- nVal > 0x1FFFFFFF => 0x1000000000+ nVal of size 5 Byte.
-
- @see SvPersistStream::ReadCompressed
-*/
-void SvPersistStream::WriteCompressed( SvStream & rStm, sal_uInt32 nVal )
-{
-#ifdef STOR_NO_OPTIMIZE
- if( nVal < 0x80 )
- rStm.WriteUChar( LEN_1 | nVal );
- else if( nVal < 0x4000 )
- {
- rStm.WriteUChar( LEN_2 | (nVal >> 8) );
- rStm.WriteUChar( nVal );
- }
- else if( nVal < 0x20000000 )
- {
- // highest sal_uInt8
- rStm.WriteUChar( LEN_4 | (nVal >> 24) );
- // 2nd highest sal_uInt8
- rStm.WriteUChar( nVal >> 16 );
- rStm.WriteUInt16( nVal );
- }
- else
-#endif
- {
- rStm.WriteUChar( LEN_5 );
- rStm.WriteUInt32( nVal );
- }
-}
-
-/** This method writes length value of 4 Bytes to the stream and returns the
- stream position.
-
- Example:
- @code
- sal_uInt32 nObjPos = rStm.WriteDummyLen();
- ...
- // write data
- ...
- rStm.WriteLen( nObjPos );
- @endcode
-
- @return Position of stream behind length value
-
- @see SvPersistStream::ReadLen
- @see SvPersistStream::WriteLen
-*/
-sal_uInt32 SvPersistStream::WriteDummyLen()
-{
- WriteUInt32( 0 );
- return Tell();
-}
-
-/** Write difference between current position and nObjPos
- as sal_uInt32 to position nObjPos-4 in the stream.
-
- Afterwards, reset stream to old position.
-
- Example: Difference does not contain length value
- @code
- sal_uInt32 nObjPos = rStm.WriteDummyLen();
- ...
- // write data
- ...
- rStm.WriteLen( nObjPos );
- // write more data
- @endcode
-
- @param nObjPos Position+4, on which length is written to
-
- @see SvPersistStream::ReadLen
- @see SvPersistStream::WriteDummyLen
-*/
-void SvPersistStream::WriteLen( sal_uInt32 nObjPos )
-{
- sal_uInt32 nPos = Tell();
- sal_uInt32 nLen = nPos - nObjPos;
- // Length in stream must be 4 Bytes
- Seek( nObjPos - sizeof( sal_uInt32 ) );
- // write length
- WriteUInt32( nLen );
- Seek( nPos );
-}
-
-/** Read a length value written to stream
-
- @param pTestPos Position of the stream after reading length. May be NULL.
-
- @see SvPersistStream::WriteDummyLen
- @see SvPersistStream::WriteLen
-*/
-sal_uInt32 SvPersistStream::ReadLen( sal_uInt32 * pTestPos )
-{
- sal_uInt32 nLen;
- ReadUInt32( nLen );
- if( pTestPos )
- *pTestPos = Tell();
- return nLen;
-}
-
-// File format backward-compatible
-#ifdef STOR_NO_OPTIMIZE
-#define P_VER (sal_uInt8)0x00
-#else
-#define P_VER (sal_uInt8)0x01
-#endif
-#define P_VER_MASK (sal_uInt8)0x0F
-#define P_ID_0 (sal_uInt8)0x80
-#define P_OBJ (sal_uInt8)0x40
-#define P_DBGUTIL (sal_uInt8)0x20
-#define P_ID (sal_uInt8)0x10
-#ifdef STOR_NO_OPTIMIZE
-#define P_STD P_DBGUTIL
-#else
-#define P_STD 0
-#endif
-
-static void WriteId
-(
- SvStream & rStm,
- sal_uInt8 nHdr,
- sal_uInt32 nId,
- sal_uInt16 nClassId
-)
-{
-#ifdef STOR_NO_OPTIMIZE
- nHdr |= P_ID;
-#endif
- nHdr |= P_VER;
- if( nHdr & P_ID )
- {
- if( (nHdr & P_OBJ) || nId != 0 )
- { // Id set only for pointers or DBGUTIL
- rStm.WriteUChar( nHdr );
- SvPersistStream::WriteCompressed( rStm, nId );
- }
- else
- { // NULL Pointer
- rStm.WriteUChar( nHdr | P_ID_0 );
- return;
- }
- }
- else
- rStm.WriteUChar( nHdr );
-
- if( (nHdr & P_DBGUTIL) || (nHdr & P_OBJ) )
- // Objects always have a class id
- // Pointers only for DBG_UTIL and != NULL
- SvPersistStream::WriteCompressed( rStm, nClassId );
-}
-
-static void ReadId
-(
- SvStream & rStm,
- sal_uInt8 & nHdr,
- SvPersistStream::Index & nId,
- sal_uInt16 & nClassId
-)
-{
- nClassId = 0;
- rStm.ReadUChar( nHdr );
- if( nHdr & P_ID_0 )
- nId = SvPersistStream::Index(0);
- else
- {
- if( (nHdr & P_VER_MASK) == 0 )
- {
- if( (nHdr & P_DBGUTIL) || !(nHdr & P_OBJ) )
- nId = SvPersistStream::Index(SvPersistStream::ReadCompressed( rStm ));
- else
- nId = SvPersistStream::Index(0);
- }
- else if( nHdr & P_ID )
- nId = SvPersistStream::Index(SvPersistStream::ReadCompressed( rStm ));
-
- if( (nHdr & P_DBGUTIL) || (nHdr & P_OBJ) )
- nClassId = (sal_uInt16)SvPersistStream::ReadCompressed( rStm );
- }
-}
-
-void SvPersistStream::WriteObj
-(
- sal_uInt8 nHdr,
- SvPersistBase * pObj
-)
-{
-#ifdef STOR_NO_OPTIMIZE
- sal_uInt32 nObjPos = 0;
- if( nHdr & P_DBGUTIL )
- // remember position for length value
- nObjPos = WriteDummyLen();
-#endif
- pObj->Save( *this );
-#ifdef STOR_NO_OPTIMIZE
- if( nHdr & P_DBGUTIL )
- WriteLen( nObjPos );
-#endif
-}
-
-SvPersistStream& SvPersistStream::WritePointer
-(
- SvPersistBase * pObj
-)
-{
- sal_uInt8 nP = P_STD;
-
- if( pObj )
- {
- Index nId = GetIndex( pObj );
- if( nId )
- nP |= P_ID;
- else
- {
- nId = aPUIdx.Insert( pObj );
- aPTable[ pObj ] = nId;
- nP |= P_OBJ;
- }
- WriteId( *this, nP, (sal_uInt32)nId, pObj->GetClassId() );
- if( nP & P_OBJ )
- WriteObj( nP, pObj );
- }
- else
- { // NULL Pointer
- WriteId( *this, nP | P_ID, 0, 0 );
- }
- return *this;
-}
-
-void SvPersistStream::ReadObj
-(
- SvPersistBase * & rpObj
-)
-{
- sal_uInt8 nHdr;
- Index nId(0);
- sal_uInt16 nClassId;
-
- rpObj = nullptr; // specification: 0 in case of error
- ReadId( *this, nHdr, nId, nClassId );
-
- // get version number through masking
- if( P_VER < (nHdr & P_VER_MASK) )
- {
- SetError( SVSTREAM_FILEFORMAT_ERROR );
- OSL_FAIL( "false version" );
- }
-
- if( !(nHdr & P_ID_0) && GetError() == ERRCODE_NONE )
- {
- if( P_OBJ & nHdr )
- { // read object, nId only set for P_DBGUTIL
- SAL_WARN_IF( (nHdr & P_DBGUTIL) && nullptr != aPUIdx.Get( nId ), "tools","object already exists");
- SvCreateInstancePersist pFunc = rClassMgr.Get( nClassId );
-
- sal_uInt32 nObjLen(0), nObjPos(0);
- if( nHdr & P_DBGUTIL )
- nObjLen = ReadLen( &nObjPos );
- if( !pFunc )
- {
-#ifdef DBG_UTIL
- SAL_INFO( "tools", "no class with id: " << nClassId << " registered" );
-#else
- (void)nObjLen;
-#endif
- SetError( ERRCODE_IO_NOFACTORY );
- return;
- }
- pFunc( &rpObj );
- // Save reference
- rpObj->AddFirstRef();
-
- // insert into table
- const Index nNewId = aPUIdx.Insert( rpObj );
- // in order to restore state after saving
- aPTable[ rpObj ] = nNewId;
- SAL_WARN_IF( (nHdr & P_DBGUTIL) && (nId != nNewId), "tools","read write id conflict: not the same");
-
- rpObj->Load( *this );
- SAL_WARN_IF( nObjLen + nObjPos != Tell(), "tools", "false object len: read = " << (Tell() - nObjPos)
- << ", should = " << nObjLen);
- rpObj->RestoreNoDelete();
- rpObj->ReleaseRef();
- }
- else
- {
- rpObj = GetObject( nId );
- SAL_WARN_IF(rpObj==nullptr,"tools","object does not exist");
- SAL_WARN_IF( rpObj->GetClassId() != nClassId , "tools" , "class mismatch" );
- }
- }
-}
-
-SvPersistStream& SvPersistStream::ReadPointer
-(
- SvPersistBase * & rpObj
-)
-{
- ReadObj( rpObj );
- return *this;
-}
-
-SvPersistStream& WriteSvPersistBase
-(
- SvPersistStream & rStm,
- SvPersistBase * pObj
-)
-{
- return rStm.WritePointer( pObj );
-}
-
-SvPersistStream& operator >>
-(
- SvPersistStream & rStm,
- SvPersistBase * & rpObj
-)
-{
- return rStm.ReadPointer( rpObj );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */