Kaydet (Commit) aef6ab20 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Strip svidl down to what is still used

...the generated .ilb, .lst, and .sid outputs requested by SdiTarget were
apparently unused.

Change-Id: I1abb2abc7945070451fce4a98a11d955515e3f63
üst d2ed493a
......@@ -38,8 +38,7 @@ typedef SvMetaObject * (*CreateMetaObjectType)();
enum WriteType
{
WRITE_IDL, WRITE_ODL, WRITE_SLOTMAP, WRITE_C_HEADER, WRITE_C_SOURCE,
WRITE_CXX_HEADER, WRITE_CXX_SOURCE, WRITE_DOCU
WRITE_C_HEADER, WRITE_C_SOURCE
};
enum
......@@ -49,16 +48,10 @@ enum
};
typedef int WriteAttribute;
#define SV_DECL_META_FACTORY1( Class, Super1, CLASS_ID ) \
SV_DECL_PERSIST1( Class, Super1, CLASS_ID )
#define SV_IMPL_META_FACTORY1( Class, Super1 ) \
SV_IMPL_PERSIST1( Class, Super1 )
class SvMetaObject : public SvPersistBase
class SvMetaObject : public SvRttiBase
{
public:
SV_DECL_META_FACTORY1( SvMetaObject, SvPersistBase, 14 )
TYPEINFO_OVERRIDE();
SvMetaObject();
static void WriteTab( SvStream & rOutStm, sal_uInt16 nTab );
......@@ -67,14 +60,16 @@ public:
static void WriteStars( SvStream & );
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0 );
protected:
virtual ~SvMetaObject() {}
};
typedef tools::SvRef<SvMetaObject> SvMetaObjectRef;
class SvMetaObjectMemberList : public SvDeclPersistList<SvMetaObject *> {};
class SvMetaObjectMemberList : public SvRefMemberList<SvMetaObject *> {};
class SvMetaObjectMemberStack
{
......@@ -111,18 +106,14 @@ protected:
void DoReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm,
char c = '\0' );
virtual void ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
virtual void WriteContextSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab );
virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm );
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab );
virtual void WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0);
virtual void WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0);
public:
SV_DECL_META_FACTORY1( SvMetaName, SvMetaObject, 15 )
TYPEINFO_OVERRIDE();
SvMetaName();
virtual bool SetName( const OString& rName, SvIdlDataBase * = NULL );
......@@ -136,14 +127,13 @@ public:
virtual bool Test( SvIdlDataBase &, SvTokenStream & rInStm );
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0) SAL_OVERRIDE;
void WriteDescription( SvStream& rOutStm );
};
typedef tools::SvRef<SvMetaName> SvMetaNameRef;
class SvMetaNameMemberList : public SvDeclPersistList<SvMetaName *> {};
class SvMetaNameMemberList : public SvRefMemberList<SvMetaName *> {};
class SvMetaReference;
typedef tools::SvRef<SvMetaReference> SvMetaReferenceRef;
......@@ -152,7 +142,7 @@ class SvMetaReference : public SvMetaName
protected:
SvMetaReferenceRef aRef;
public:
SV_DECL_META_FACTORY1( SvMetaReference, SvMetaName, 17 )
TYPEINFO_OVERRIDE();
SvMetaReference();
const SvString & GetName() const SAL_OVERRIDE
......@@ -191,7 +181,7 @@ public:
{ aRef = pRef; }
};
class SvMetaReferenceMemberList : public SvDeclPersistList<SvMetaReference *> {};
class SvMetaReferenceMemberList : public SvRefMemberList<SvMetaReference *> {};
class SvMetaModule;
......@@ -204,7 +194,7 @@ class SvMetaExtern : public SvMetaReference
bool bReadUUId;
bool bReadVersion;
public:
SV_DECL_META_FACTORY1( SvMetaExtern, SvMetaName, 16 )
TYPEINFO_OVERRIDE();
SvMetaExtern();
SvMetaModule * GetModule() const;
......@@ -213,20 +203,17 @@ public:
const SvVersion & GetVersion() const { return aVersion; }
void SetModule( SvIdlDataBase & rBase );
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0) SAL_OVERRIDE;
protected:
virtual void ReadAttributesSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0) SAL_OVERRIDE;
};
typedef tools::SvRef<SvMetaExtern> SvMetaExternRef;
class SvMetaExternMemberList : public SvDeclPersistList<SvMetaExtern *> {};
class SvMetaExternMemberList : public SvRefMemberList<SvMetaExtern *> {};
#endif // INCLUDED_IDL_INC_BASOBJ_HXX
......
......@@ -90,7 +90,6 @@ public:
friend SvStream& operator >> (SvStream &, SvBOOL &);
bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm );
bool WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm );
OString GetSvIdlString( SvStringHashEntry * pName );
};
......@@ -119,8 +118,6 @@ public:
return !m_aStr.isEmpty();
}
bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm );
bool WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm,
sal_uInt16 nTab );
};
......@@ -168,8 +165,6 @@ public:
friend SvStream& operator >> (SvStream &, SvString &);
bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm );
bool WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm,
sal_uInt16 nTab );
};
......@@ -178,8 +173,6 @@ class SvHelpText : public SvString
public:
SvHelpText() {}
bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
bool WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab );
};
......@@ -192,7 +185,6 @@ class SvUUId : public SvGlobalName
public:
SvUUId() {}
bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
bool WriteSvIdl( SvStream & rOutStm );
};
......@@ -218,7 +210,6 @@ public:
friend SvStream& WriteSvVersion(SvStream &, const SvVersion &);
friend SvStream& operator >> (SvStream &, SvVersion &);
bool ReadSvIdl( SvTokenStream & rInStm );
bool WriteSvIdl( SvStream & rOutStm );
};
......
......@@ -29,20 +29,13 @@ typedef ::std::vector< OString* > ByteStringList;
class SvCommand
{
public:
OUString aDataBaseFile;
StringList aInFileList;
OUString aListFile;
OUString aSlotMapFile;
OUString aSfxItemFile;
OUString aPath;
OUString aTargetFile;
OUString aHelpIdFile;
OUString aCSVFile;
OUString aExportFile;
OUString aDocuFile;
OUString m_DepFile;
sal_uInt32 nVerbosity;
sal_uInt32 nFlags;
SvCommand( int argc, char ** argv );
~SvCommand();
......
......@@ -59,7 +59,6 @@ class SvIdlDataBase
OUString aExportFile;
sal_uInt32 nUniqueId;
sal_uInt32 nVerbosity;
SvPersistStream aPersStream;
StringList aIdFileList;
SvStringHashTable * pIdTable;
......@@ -84,10 +83,6 @@ public:
explicit SvIdlDataBase( const SvCommand& rCmd );
~SvIdlDataBase();
static bool IsBinaryFormat( SvStream & rInStm );
void Load( SvStream & rInStm );
void Save( SvStream & rInStm, sal_uInt32 nContextFlags );
SvMetaAttributeMemberList& GetAttrList() { return aAttrList; }
SvStringHashTable * GetIdTable() { return pIdTable; }
......@@ -152,13 +147,8 @@ public:
explicit SvIdlWorkingBase( const SvCommand& rCmd );
bool ReadSvIdl( SvTokenStream &, bool bImported, const OUString & rPath );
bool WriteSvIdl( SvStream & );
bool WriteSfx( SvStream & );
bool WriteHelpIds( SvStream & );
bool WriteSfxItem( SvStream & );
bool WriteCSV( SvStream& );
bool WriteDocumentation( SvStream& );
};
#endif // INCLUDED_IDL_INC_DATABASE_HXX
......
......@@ -119,7 +119,6 @@ class IdlDll
{
public:
SvStringHashTable * pHashTable;
SvClassManager * pClassMgr;
SvGlobalHashNames * pGlobalNames;
IdlDll();
......
......@@ -51,11 +51,9 @@ class SvMetaModule : public SvMetaExtern
SvGlobalName aNextName;
protected:
virtual void ReadAttributesSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteContextSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
public:
SV_DECL_META_FACTORY1( SvMetaModule, SvMetaExtern, 13 )
TYPEINFO_OVERRIDE();
SvMetaModule();
const OUString & GetIdlFileName() const { return aIdlFileName; }
......@@ -78,7 +76,6 @@ public:
bool IsModified() const { return bIsModified; }
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void WriteAttributes( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab,
......@@ -86,12 +83,10 @@ public:
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
virtual void WriteSfx( SvIdlDataBase & rBase, SvStream & rOutStm );
virtual void WriteHelpIds( SvIdlDataBase & rBase, SvStream & rOutStm,
HelpIdTable& rTable );
};
typedef tools::SvRef<SvMetaModule> SvMetaModuleRef;
class SvMetaModuleMemberList : public SvDeclPersistList<SvMetaModule *> {};
class SvMetaModuleMemberList : public SvRefMemberList<SvMetaModule *> {};
#endif // INCLUDED_IDL_INC_MODULE_HXX
......
......@@ -40,13 +40,13 @@ class SvMetaClass;
typedef ::std::vector< SvMetaClass* > SvMetaClassList;
typedef tools::SvRef<SvMetaClass> SvMetaClassRef;
class SvClassElement : public SvPersistBase
class SvClassElement : public SvRttiBase
{
SvBOOL aAutomation;
OString aPrefix;
SvMetaClassRef xClass;
public:
SV_DECL_PERSIST1( SvClassElement, SvPersistBase, 1 )
TYPEINFO_OVERRIDE();
SvClassElement();
void SetPrefix( const OString& rPrefix )
......@@ -67,9 +67,9 @@ public:
typedef tools::SvRef<SvClassElement> SvClassElementRef;
class SvClassElementMemberList : public SvDeclPersistList<SvClassElement *> {};
class SvClassElementMemberList : public SvRefMemberList<SvClassElement *> {};
class SvMetaClassMemberList : public SvDeclPersistList<SvMetaClass *> {};
class SvMetaClassMemberList : public SvRefMemberList<SvMetaClass *> {};
class SvMetaClass : public SvMetaType
{
......@@ -100,18 +100,14 @@ class SvMetaClass : public SvMetaType
protected:
virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void ReadContextSvIdl( SvIdlDataBase &,
SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteContextSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
void WriteOdlMembers( ByteStringList & rSuperList,
bool bVariable, bool bWriteTab,
SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab );
public:
SV_DECL_META_FACTORY1( SvMetaClass, SvMetaType, 6 )
TYPEINFO_OVERRIDE();
SvMetaClass();
bool GetAutomation() const
......@@ -126,13 +122,10 @@ public:
{ return aClassList; }
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
virtual void WriteSfx( SvIdlDataBase & rBase, SvStream & rOutStm ) SAL_OVERRIDE;
virtual void WriteHelpIds( SvIdlDataBase & rBase, SvStream & rOutStm,
HelpIdTable& rTable );
};
#endif // INCLUDED_IDL_INC_OBJECT_HXX
......
......@@ -167,7 +167,7 @@ protected:
{ aImageReflection = bSet; }
public:
SV_DECL_META_FACTORY1( SvMetaSlot, SvMetaReference, 11 )
TYPEINFO_OVERRIDE();
SvMetaObject * MakeClone() const;
SvMetaSlot *Clone() const { return static_cast<SvMetaSlot *>(MakeClone()); }
......@@ -229,11 +229,7 @@ public:
virtual bool Test( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Insert( SvSlotElementList&, const OString& rPrefix,
SvIdlDataBase& ) SAL_OVERRIDE;
void WriteSlotStubs( const OString& rShellName,
......@@ -247,13 +243,10 @@ public:
SvStream & rOutStm );
sal_uInt16 WriteSlotParamArray( SvIdlDataBase & rBase,
SvStream & rOutStm );
virtual void WriteHelpId( SvIdlDataBase & rBase, SvStream & rOutStm,
HelpIdTable& rIdTable ) SAL_OVERRIDE;
virtual void WriteCSV( SvIdlDataBase&, SvStream& ) SAL_OVERRIDE;
};
typedef tools::SvRef<SvMetaSlot> SvMetaSlotRef;
class SvMetaSlotMemberList : public SvDeclPersistList<SvMetaSlot *> {};
class SvMetaSlotMemberList : public SvRefMemberList<SvMetaSlot *> {};
#endif // INCLUDED_IDL_INC_SLOT_HXX
......
......@@ -23,13 +23,11 @@
#include <rtl/strbuf.hxx>
#include <tools/ref.hxx>
#include <basobj.hxx>
#include <map>
struct SvSlotElement;
typedef std::vector< SvSlotElement* > SvSlotElementList;
class SvMetaSlot;
typedef std::map<sal_uLong, SvMetaSlot*> HelpIdTable;
class SvMetaType;
typedef tools::SvRef<SvMetaType> SvMetaTypeRef;
......@@ -55,10 +53,8 @@ protected:
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
public:
SV_DECL_META_FACTORY1( SvMetaAttribute, SvMetaReference, 2 )
TYPEINFO_OVERRIDE();
SvMetaAttribute();
SvMetaAttribute( SvMetaType * );
......@@ -101,7 +97,6 @@ public:
virtual bool Test( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void WriteParam( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType );
void WriteRecursiv_Impl( SvIdlDataBase & rBase,
......@@ -112,16 +107,12 @@ public:
sal_uLong MakeSfx( OStringBuffer& rAtrrArray );
virtual void Insert( SvSlotElementList&, const OString& rPrefix,
SvIdlDataBase& );
virtual void WriteHelpId( SvIdlDataBase & rBase, SvStream & rOutStm,
HelpIdTable& rIdTable );
virtual void WriteCSV( SvIdlDataBase&, SvStream& );
void FillIDTable(HelpIdTable& rIDTable);
OString Compare( SvMetaAttribute *pAttr );
};
typedef tools::SvRef<SvMetaAttribute> SvMetaAttributeRef;
class SvMetaAttributeMemberList : public SvDeclPersistList<SvMetaAttribute *> {};
class SvMetaAttributeMemberList : public SvRefMemberList<SvMetaAttribute *> {};
enum { CALL_VALUE, CALL_POINTER, CALL_REFERENCE };
enum { TYPE_METHOD, TYPE_STRUCT, TYPE_BASE, TYPE_ENUM, TYPE_UNION,
......@@ -150,10 +141,7 @@ protected:
bool ReadNamesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm );
virtual void ReadAttributesSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteContextSvIdl( SvIdlDataBase &, SvStream & rOutStm,
sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
......@@ -161,10 +149,8 @@ protected:
virtual void WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
bool ReadHeaderSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
void WriteHeaderSvIdl( SvIdlDataBase &, SvStream & rOutStm,
sal_uInt16 nTab );
public:
SV_DECL_META_FACTORY1( SvMetaType, SvMetaExtern, 18 )
TYPEINFO_OVERRIDE();
SvMetaType();
SvMetaType( const OString& rTypeName, char cParserChar,
const OString& rCName );
......@@ -219,8 +205,6 @@ public:
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
OString GetCString() const;
......@@ -239,33 +223,31 @@ public:
const OString& rChief );
};
class SvMetaTypeMemberList : public SvDeclPersistList<SvMetaType *> {};
class SvMetaTypeMemberList : public SvRefMemberList<SvMetaType *> {};
class SvMetaTypeString : public SvMetaType
{
public:
SV_DECL_META_FACTORY1( SvMetaTypeString, SvMetaType, 19 )
TYPEINFO_OVERRIDE();
SvMetaTypeString();
};
typedef tools::SvRef<SvMetaTypeString> SvMetaTypeStringRef;
class SvMetaTypeStringMemberList : public SvDeclPersistList<SvMetaTypeString *> {};
class SvMetaTypeStringMemberList : public SvRefMemberList<SvMetaTypeString *> {};
class SvMetaEnumValue : public SvMetaName
{
OString aEnumValue;
public:
SV_DECL_META_FACTORY1( SvMetaEnumValue, SvMetaName, 20 )
TYPEINFO_OVERRIDE();
SvMetaEnumValue();
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
};
typedef tools::SvRef<SvMetaEnumValue> SvMetaEnumValueRef;
class SvMetaEnumValueMemberList : public SvDeclPersistList<SvMetaEnumValue *> {};
class SvMetaEnumValueMemberList : public SvRefMemberList<SvMetaEnumValue *> {};
class SvMetaTypeEnum : public SvMetaType
{
......@@ -273,12 +255,10 @@ class SvMetaTypeEnum : public SvMetaType
OString aPrefix;
protected:
virtual void ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteContextSvIdl( SvIdlDataBase &, SvStream & rOutStm,
sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
WriteType, WriteAttribute = 0 ) SAL_OVERRIDE;
public:
SV_DECL_META_FACTORY1( SvMetaTypeEnum, SvMetaType, 21 )
TYPEINFO_OVERRIDE();
SvMetaTypeEnum();
sal_uInt16 GetMaxValue() const;
......@@ -288,7 +268,6 @@ public:
{ return aEnumValueList[n]; }
virtual bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ) SAL_OVERRIDE;
virtual void WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ) SAL_OVERRIDE;
virtual void Write( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
......@@ -296,16 +275,16 @@ public:
};
typedef tools::SvRef<SvMetaTypeEnum> SvMetaTypeEnumRef;
class SvMetaTypeEnumMemberList : public SvDeclPersistList<SvMetaTypeEnum *> {};
class SvMetaTypeEnumMemberList : public SvRefMemberList<SvMetaTypeEnum *> {};
class SvMetaTypevoid : public SvMetaType
{
public:
SV_DECL_META_FACTORY1( SvMetaTypevoid, SvMetaName, 22 )
TYPEINFO_OVERRIDE();
SvMetaTypevoid();
};
typedef tools::SvRef<SvMetaTypevoid> SvMetaTypevoidRef;
class SvMetaTypevoidMemberList : public SvDeclPersistList<SvMetaTypevoid *> {};
class SvMetaTypevoidMemberList : public SvRefMemberList<SvMetaTypevoid *> {};
#endif // INCLUDED_IDL_INC_TYPES_HXX
......
......@@ -28,19 +28,11 @@
#include <globals.hxx>
#include <database.hxx>
SV_IMPL_META_FACTORY1( SvMetaObject, SvRttiBase )
TYPEINIT1( SvMetaObject, SvRttiBase )
SvMetaObject::SvMetaObject()
{
}
void SvMetaObject::Load( SvPersistStream & )
{
}
void SvMetaObject::Save( SvPersistStream & )
{
}
void SvMetaObject::WriteTab( SvStream & rOutStm, sal_uInt16 nTab )
{
while( nTab-- )
......@@ -101,57 +93,16 @@ bool SvMetaObject::ReadSvIdl( SvIdlDataBase &, SvTokenStream & )
return false;
}
void SvMetaObject::WriteSvIdl( SvIdlDataBase &, SvStream &, sal_uInt16 /*nTab */ )
{
}
void SvMetaObject::Write( SvIdlDataBase &, SvStream &, sal_uInt16 /*nTab */,
WriteType, WriteAttribute )
{
}
SV_IMPL_META_FACTORY1( SvMetaName, SvMetaObject );
TYPEINIT1( SvMetaName, SvMetaObject );
SvMetaName::SvMetaName()
{
}
void SvMetaName::Load( SvPersistStream & rStm )
{
SvMetaObject::Load( rStm );
sal_uInt8 nMask;
rStm.ReadUChar( nMask );
if( nMask >= 0x20 )
{
rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
OSL_FAIL( "wrong format" );
return;
}
if( nMask & 0x01 ) rStm >> aName;
if( nMask & 0x02 ) rStm >> aHelpContext;
if( nMask & 0x04 ) rStm >> aHelpText;
if( nMask & 0x08 ) rStm >> aConfigName;
if( nMask & 0x10 ) rStm >> aDescription;
}
void SvMetaName::Save( SvPersistStream & rStm )
{
SvMetaObject::Save( rStm );
sal_uInt8 nMask = 0;
if( aName.IsSet() ) nMask |= 0x01;
if( aHelpContext.IsSet() ) nMask |= 0x02;
if( aHelpText.IsSet() ) nMask |= 0x04;
if( aConfigName.IsSet() ) nMask |= 0x08;
if( aDescription.IsSet() ) nMask |= 0x10;
rStm.WriteUChar( nMask );
if( nMask & 0x01 ) WriteSvString( rStm, aName );
if( nMask & 0x02 ) WriteSvNumberIdentifier( rStm, aHelpContext );
if( nMask & 0x04 ) WriteSvString( rStm, aHelpText );
if( nMask & 0x08 ) WriteSvString( rStm, aConfigName );
if( nMask & 0x10 ) WriteSvString( rStm, aDescription );
}
bool SvMetaName::SetName( const OString& rName, SvIdlDataBase * )
{
aName.setString(rName);
......@@ -213,10 +164,6 @@ bool SvMetaName::Test( SvIdlDataBase &, SvTokenStream & )
return true;
}
void SvMetaName::WriteContextSvIdl( SvIdlDataBase &, SvStream &, sal_uInt16 )
{
}
void SvMetaName::WriteDescription( SvStream & rOutStm )
{
rOutStm.WriteCharPtr( "<DESCRIPTION>" ) << endl;
......@@ -234,35 +181,6 @@ void SvMetaName::WriteDescription( SvStream & rOutStm )
rOutStm.WriteCharPtr( "</DESCRIPTION>" ) << endl;
}
void SvMetaName::WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm,
sal_uInt16 nTab )
{
if( aHelpContext.IsSet() || aHelpText.IsSet() || aConfigName.IsSet() )
{
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "// class SvMetaName" ) << endl;
}
if( aHelpContext.IsSet() )
{
WriteTab( rOutStm, nTab );
aHelpContext.WriteSvIdl( SvHash_HelpContext(), rOutStm, nTab );
rOutStm.WriteChar( ';' ) << endl;
}
if( aHelpText.IsSet() )
{
WriteTab( rOutStm, nTab );
aHelpText.WriteSvIdl( rBase, rOutStm, nTab );
rOutStm.WriteChar( ';' ) << endl;
}
if( aConfigName.IsSet() )
{
WriteTab( rOutStm, nTab );
aConfigName.WriteSvIdl( SvHash_ConfigName(), rOutStm, nTab );
rOutStm.WriteChar( ';' ) << endl;
}
}
bool SvMetaName::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
{
sal_uInt32 nTokPos = rInStm.Tell();
......@@ -293,43 +211,6 @@ bool SvMetaName::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
return bOk;
}
void SvMetaName::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab )
{
sal_uLong nBeginPos = rOutStm.Tell();
WriteTab( rOutStm, nTab );
rOutStm.WriteChar( '[' ) << endl;
sal_uLong nOldPos = rOutStm.Tell();
WriteAttributesSvIdl( rBase, rOutStm, nTab +1 );
// write no empty brackets
if( TestAndSeekSpaceOnly( rOutStm, nOldPos ) )
// nothing written
rOutStm.Seek( nBeginPos );
else
{
WriteTab( rOutStm, nTab );
rOutStm.WriteChar( ']' );
nBeginPos = rOutStm.Tell();
rOutStm << endl;
}
WriteTab( rOutStm, nTab );
rOutStm.WriteChar( '{' ) << endl;
nOldPos = rOutStm.Tell();
WriteContextSvIdl( rBase, rOutStm, nTab +1 );
// write no empty brackets
if( TestAndSeekSpaceOnly( rOutStm, nOldPos ) )
// nothing written
rOutStm.Seek( nBeginPos );
else
{
WriteTab( rOutStm, nTab );
rOutStm.WriteChar( '}' );
}
}
void SvMetaName::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
WriteType nT, WriteAttribute nA )
......@@ -391,47 +272,13 @@ void SvMetaName::WriteContext( SvIdlDataBase &, SvStream &,
{
}
SV_IMPL_META_FACTORY1( SvMetaReference, SvMetaName );
TYPEINIT1( SvMetaReference, SvMetaName );
SvMetaReference::SvMetaReference()
{
}
void SvMetaReference::Load( SvPersistStream & rStm )
{
SvMetaName::Load( rStm );
sal_uInt8 nMask;
rStm.ReadUChar( nMask );
if( nMask >= 0x2 )
{
rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
OSL_FAIL( "wrong format" );
return;
}
if( nMask & 0x01 )
{
SvMetaReference * pRef;
rStm >> pRef;
aRef = pRef;
}
}
void SvMetaReference::Save( SvPersistStream & rStm )
{
SvMetaName::Save( rStm );
// create mask
sal_uInt8 nMask = 0;
if( aRef.Is() )
nMask |= 0x01;
// write data
rStm.WriteUChar( nMask );
if( nMask & 0x01 ) WriteSvPersistBase( rStm, aRef );
}
SV_IMPL_META_FACTORY1( SvMetaExtern, SvMetaReference );
TYPEINIT1( SvMetaExtern, SvMetaReference );
SvMetaExtern::SvMetaExtern()
: pModule( NULL )
......@@ -440,44 +287,6 @@ SvMetaExtern::SvMetaExtern()
{
}
void SvMetaExtern::Load( SvPersistStream & rStm )
{
SvMetaReference::Load( rStm );
sal_uInt8 nMask;
rStm.ReadUChar( nMask );
if( nMask >= 0x20 )
{
rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
OSL_FAIL( "wrong format" );
return;
}
if( nMask & 0x01 ) rStm >> pModule;
if( nMask & 0x02 ) rStm >> aUUId;
if( nMask & 0x04 ) rStm >> aVersion;
if( nMask & 0x08 ) bReadUUId = true;
if( nMask & 0x10 ) bReadVersion = true;
}
void SvMetaExtern::Save( SvPersistStream & rStm )
{
SvMetaReference::Save( rStm );
// create mask
sal_uInt8 nMask = 0;
if( pModule ) nMask |= 0x01;
if( aUUId != SvGlobalName() ) nMask |= 0x02;
if( aVersion != SvVersion() ) nMask |= 0x04;
if( bReadUUId ) nMask |= 0x08;
if( bReadVersion ) nMask |= 0x10;
// write data
rStm.WriteUChar( nMask );
if( nMask & 0x01 ) WriteSvPersistBase( rStm, pModule );
if( nMask & 0x02 ) WriteSvGlobalName( rStm, aUUId );
if( nMask & 0x04 ) WriteSvVersion( rStm, aVersion );
}
SvMetaModule * SvMetaExtern::GetModule() const
{
DBG_ASSERT( pModule != NULL, "module not set" );
......@@ -506,30 +315,6 @@ void SvMetaExtern::ReadAttributesSvIdl( SvIdlDataBase & rBase,
bReadVersion = true;
}
void SvMetaExtern::WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab )
{
SvMetaReference::WriteAttributesSvIdl( rBase, rOutStm, nTab );
if( bReadUUId || bReadVersion )
{
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "// class SvMetaExtern" ) << endl;
if( bReadUUId )
{
WriteTab( rOutStm, nTab );
aUUId.WriteSvIdl( rOutStm );
rOutStm.WriteChar( ';' ) << endl;
}
if( bReadVersion )
{
WriteTab( rOutStm, nTab );
aVersion.WriteSvIdl( rOutStm );
rOutStm.WriteChar( ';' ) << endl;
}
}
}
bool SvMetaExtern::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
{
SetModule( rBase );
......@@ -537,12 +322,6 @@ bool SvMetaExtern::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
return SvMetaReference::ReadSvIdl( rBase, rInStm );
}
void SvMetaExtern::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab )
{
SvMetaReference::WriteSvIdl( rBase, rOutStm, nTab );
}
void SvMetaExtern::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
WriteType nT, WriteAttribute nA )
......
......@@ -157,15 +157,6 @@ bool SvBOOL::ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm )
return false;
}
bool SvBOOL::WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm )
{
if( nVal )
rOutStm.WriteCharPtr( pName->GetName().getStr() );
else
rOutStm.WriteCharPtr( pName->GetName().getStr() ).WriteCharPtr( "(FALSE)" );
return true;
}
OString SvBOOL::GetSvIdlString( SvStringHashEntry * pName )
{
if( nVal )
......@@ -203,15 +194,6 @@ bool SvIdentifier::ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm
return false;
}
bool SvIdentifier::WriteSvIdl( SvStringHashEntry * pName,
SvStream & rOutStm,
sal_uInt16 /*nTab */ )
{
rOutStm.WriteCharPtr( pName->GetName().getStr() ).WriteChar( '(' );
rOutStm.WriteCharPtr( getString().getStr() ).WriteChar( ')' );
return true;
}
SvStream& WriteSvIdentifier(SvStream & rStm, const SvIdentifier & r )
{
write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, r.getString());
......@@ -317,14 +299,6 @@ bool SvString::ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm )
return false;
}
bool SvString::WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm,
sal_uInt16 /*nTab */ )
{
rOutStm.WriteCharPtr( pName->GetName().getStr() ).WriteCharPtr( "(\"" );
rOutStm.WriteCharPtr( m_aStr.getStr() ).WriteCharPtr( "\")" );
return true;
}
SvStream& WriteSvString(SvStream & rStm, const SvString & r )
{
write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, r.getString());
......@@ -343,11 +317,6 @@ bool SvHelpText::ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm )
return SvString::ReadSvIdl( SvHash_HelpText(), rInStm );
}
bool SvHelpText::WriteSvIdl( SvIdlDataBase &, SvStream & rOutStm, sal_uInt16 nTab )
{
return SvString::WriteSvIdl( SvHash_HelpText(), rOutStm, nTab );
}
bool SvUUId::ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm )
{
sal_uInt32 nTokPos = rInStm.Tell();
......@@ -375,15 +344,6 @@ bool SvUUId::ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm )
return false;
}
bool SvUUId::WriteSvIdl( SvStream & rOutStm )
{
// write global id
rOutStm.WriteCharPtr( SvHash_uuid()->GetName().getStr() ).WriteCharPtr( "(\"" );
rOutStm.WriteCharPtr( OUStringToOString(GetHexName(), RTL_TEXTENCODING_UTF8).getStr() ).WriteCharPtr( "\")" );
return true;
}
bool SvVersion::ReadSvIdl( SvTokenStream & rInStm )
{
sal_uLong n = 0;
......@@ -408,14 +368,4 @@ bool SvVersion::ReadSvIdl( SvTokenStream & rInStm )
return false;
}
bool SvVersion::WriteSvIdl( SvStream & rOutStm )
{
rOutStm.WriteCharPtr( SvHash_Version()->GetName().getStr() ).WriteChar( '(' )
.WriteCharPtr( OString::number(nMajorVersion).getStr() )
.WriteChar( '.' )
.WriteCharPtr( OString::number(nMinorVersion).getStr() )
.WriteChar( ')' );
return true;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -27,7 +27,7 @@
#include <tools/debug.hxx>
#include <osl/file.hxx>
SV_IMPL_META_FACTORY1( SvMetaModule, SvMetaExtern );
TYPEINIT1( SvMetaModule, SvMetaExtern );
SvMetaModule::SvMetaModule()
: bImported( false )
......@@ -41,65 +41,6 @@ SvMetaModule::SvMetaModule( const OUString & rIdlFileName, bool bImp )
{
}
#define MODULE_VER 0x0001
void SvMetaModule::Load( SvPersistStream & rStm )
{
bImported = true; // import always
SvMetaExtern::Load( rStm );
sal_uInt16 nVer;
rStm.ReadUInt16( nVer ); // version
DBG_ASSERT( (nVer & ~IDL_WRITE_MASK) == MODULE_VER, "false version" );
rStm >> aClassList;
rStm >> aTypeList;
rStm >> aAttrList;
// browser
aIdlFileName = rStm.ReadUniOrByteString( rStm.GetStreamCharSet() );
aHelpFileName.setString(read_uInt16_lenPrefixed_uInt8s_ToOString(rStm));
aSlotIdFile.setString(read_uInt16_lenPrefixed_uInt8s_ToOString(rStm));
aModulePrefix.setString(read_uInt16_lenPrefixed_uInt8s_ToOString(rStm));
// read compiler data
sal_uInt16 nCmpLen;
rStm.ReadUInt16( nCmpLen );
DBG_ASSERT( (nVer & IDL_WRITE_MASK) == IDL_WRITE_COMPILER,
"no idl compiler format" );
rStm >> aBeginName;
rStm >> aEndName;
rStm >> aNextName;
}
void SvMetaModule::Save( SvPersistStream & rStm )
{
SvMetaExtern::Save( rStm );
rStm.WriteUInt16( (MODULE_VER | IDL_WRITE_COMPILER) ); // Version
WriteSvDeclPersistList( rStm, aClassList );
WriteSvDeclPersistList( rStm, aTypeList );
WriteSvDeclPersistList( rStm, aAttrList );
// browser
rStm.WriteUniOrByteString( aIdlFileName, rStm.GetStreamCharSet() );
write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, aHelpFileName.getString());
write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, aSlotIdFile.getString());
write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, aModulePrefix.getString());
// write compiler data
sal_uInt16 nCmpLen = 0;
sal_uLong nLenPos = rStm.Tell();
rStm.WriteUInt16( nCmpLen );
WriteSvGlobalName( rStm, aBeginName );
WriteSvGlobalName( rStm, aEndName );
WriteSvGlobalName( rStm, aNextName );
// write length of compiler data
sal_uLong nPos = rStm.Tell();
rStm.Seek( nLenPos );
rStm.WriteUInt16( ( nPos - nLenPos - sizeof( sal_uInt16 ) ) );
rStm.Seek( nPos );
}
bool SvMetaModule::SetName( const OString& rName, SvIdlDataBase * pBase )
{
if( pBase )
......@@ -146,34 +87,6 @@ void SvMetaModule::ReadAttributesSvIdl( SvIdlDataBase & rBase,
aModulePrefix.ReadSvIdl( SvHash_ModulePrefix(), rInStm );
}
void SvMetaModule::WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm,
sal_uInt16 nTab )
{
SvMetaExtern::WriteAttributesSvIdl( rBase, rOutStm, nTab );
if( !aHelpFileName.getString().isEmpty() || !aSlotIdFile.getString().isEmpty() || !aTypeLibFile.getString().isEmpty() )
{
if( !aHelpFileName.getString().isEmpty() )
{
WriteTab( rOutStm, nTab );
aHelpFileName.WriteSvIdl( SvHash_HelpFile(), rOutStm, nTab +1 );
rOutStm.WriteChar( ';' ) << endl;
}
if( !aSlotIdFile.getString().isEmpty() )
{
WriteTab( rOutStm, nTab );
aSlotIdFile.WriteSvIdl( SvHash_SlotIdFile(), rOutStm, nTab +1 );
rOutStm.WriteChar( ';' ) << endl;
}
if( !aTypeLibFile.getString().isEmpty() )
{
WriteTab( rOutStm, nTab );
aTypeLibFile.WriteSvIdl( SvHash_TypeLibFile(), rOutStm, nTab +1 );
rOutStm.WriteChar( ';' ) << endl;
}
}
}
void SvMetaModule::ReadContextSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
......@@ -288,31 +201,6 @@ void SvMetaModule::ReadContextSvIdl( SvIdlDataBase & rBase,
}
}
void SvMetaModule::WriteContextSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm,
sal_uInt16 nTab )
{
SvMetaExtern::WriteContextSvIdl( rBase, rOutStm, nTab );
sal_uLong n;
for( n = 0; n < aTypeList.size(); n++ )
{
WriteTab( rOutStm, nTab );
aTypeList[n]->WriteSvIdl( rBase, rOutStm, nTab );
}
rOutStm << endl;
for( n = 0; n < aAttrList.size(); n++ )
{
WriteTab( rOutStm, nTab );
aAttrList[n]->WriteSvIdl( rBase, rOutStm, nTab );
}
rOutStm << endl;
for( n = 0; n < aClassList.size(); n++ )
{
WriteTab( rOutStm, nTab );
aClassList[n]->WriteSvIdl( rBase, rOutStm, nTab );
}
}
bool SvMetaModule::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
{
bIsModified = true; // up to now always when compiler running
......@@ -353,19 +241,6 @@ bool SvMetaModule::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
return bOk;
}
void SvMetaModule::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab )
{
rOutStm.WriteCharPtr( SvHash_module()->GetName().getStr() ) << endl;
rOutStm.WriteChar( '\"' );
rOutStm.WriteUniOrByteString( aBeginName.GetHexName(), rOutStm.GetStreamCharSet() );
rOutStm.WriteChar( '\"' ) << endl;
rOutStm.WriteChar( '\"' );
rOutStm.WriteUniOrByteString( aEndName.GetHexName(), rOutStm.GetStreamCharSet() );
rOutStm.WriteChar( '\"' ) << endl;
SvMetaExtern::WriteSvIdl( rBase, rOutStm, nTab );
}
void SvMetaModule::WriteSfx( SvIdlDataBase & rBase, SvStream & rOutStm )
{
for( sal_uLong n = 0; n < aClassList.size(); n++ )
......@@ -375,16 +250,6 @@ void SvMetaModule::WriteSfx( SvIdlDataBase & rBase, SvStream & rOutStm )
}
}
void SvMetaModule::WriteHelpIds( SvIdlDataBase & rBase, SvStream & rOutStm,
HelpIdTable& rTable )
{
for( sal_uLong n = 0; n < aClassList.size(); n++ )
{
SvMetaClass * pClass = aClassList[n];
pClass->WriteHelpIds( rBase, rOutStm, rTable );
}
}
void SvMetaModule::WriteAttributes( SvIdlDataBase & rBase,
SvStream & rOutStm,
sal_uInt16 nTab,
......@@ -406,82 +271,6 @@ void SvMetaModule::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
{
switch ( nT )
{
case WRITE_ODL:
{
if( !aSlotIdFile.getString().isEmpty() )
{
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "#include \"" ).WriteCharPtr( aSlotIdFile.getString().getStr() ).WriteChar( '"' ) << endl << endl;
}
SvMetaExtern::Write( rBase, rOutStm, nTab, nT, nA );
rOutStm << endl;
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "library " ).WriteCharPtr( GetName().getString().getStr() ) << endl;
WriteTab( rOutStm, nTab );
rOutStm.WriteChar( '{' ) << endl;
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "importlib(\"STDOLE.TLB\");" ) << endl;
for( sal_uLong n = 0; n < aClassList.size(); n++ )
{
SvMetaClass * pClass = aClassList[n];
if( !pClass->IsShell() && pClass->GetAutomation() )
{
WriteTab( rOutStm, nTab );
WriteStars( rOutStm );
pClass->Write( rBase, rOutStm, nTab +1, nT, nA );
if( n +1 < aClassList.size() )
rOutStm << endl;
}
}
rOutStm.WriteChar( '}' ) << endl;
}
break;
case WRITE_DOCU:
{
rOutStm.WriteCharPtr( "SvIDL interface documentation" ) << endl << endl;
rOutStm.WriteCharPtr( "<MODULE>" ) << endl;
rOutStm.WriteCharPtr( GetName().getString().getStr() ) << endl;
WriteDescription( rOutStm );
rOutStm.WriteCharPtr( "</MODULE>" ) << endl << endl;
rOutStm.WriteCharPtr( "<CLASSES>" ) << endl;
for( sal_uLong n = 0; n < aClassList.size(); n++ )
{
SvMetaClass * pClass = aClassList[n];
if( !pClass->IsShell() )
{
rOutStm.WriteCharPtr( pClass->GetName().getString().getStr() );
SvMetaClass* pSC = pClass->GetSuperClass();
if( pSC )
rOutStm.WriteCharPtr( " : " ).WriteCharPtr( pSC->GetName().getString().getStr() );
// imported classes
const SvClassElementMemberList& rClassList = pClass->GetClassList();
if ( !rClassList.empty() )
{
rOutStm.WriteCharPtr( " ( " );
for( sal_uLong m=0; m<rClassList.size(); ++m )
{
SvClassElement *pEle = rClassList[m];
SvMetaClass *pCl = pEle->GetClass();
rOutStm.WriteCharPtr( pCl->GetName().getString().getStr() );
if ( m+1 == rClassList.size() )
rOutStm.WriteCharPtr( " )" );
else
rOutStm.WriteCharPtr( " , " );
}
}
rOutStm << endl;
}
}
rOutStm.WriteCharPtr( "</CLASSES>" ) << endl << endl;
// no break!
}
case WRITE_C_SOURCE:
case WRITE_C_HEADER:
{
......
......@@ -27,103 +27,18 @@
#include <globals.hxx>
#include <database.hxx>
SV_IMPL_PERSIST1( SvClassElement, SvPersistBase );
TYPEINIT1( SvClassElement, SvPersistBase );
SvClassElement::SvClassElement()
{
};
void SvClassElement::Load( SvPersistStream & rStm )
{
sal_uInt8 nMask;
rStm.ReadUChar( nMask );
if( nMask >= 0x08 )
{
rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
OSL_FAIL( "wrong format" );
return;
}
if( nMask & 0x01 ) rStm >> aAutomation;
if( nMask & 0x02 ) aPrefix = read_uInt16_lenPrefixed_uInt8s_ToOString(rStm);
if( nMask & 0x04 )
{
SvMetaClass * p;
rStm >> p;
xClass = p;
}
}
void SvClassElement::Save( SvPersistStream & rStm )
{
// create mask
sal_uInt8 nMask = 0;
if( aAutomation.IsSet() ) nMask |= 0x1;
if( !aPrefix.isEmpty() ) nMask |= 0x2;
if( xClass.Is() ) nMask |= 0x4;
// write data
rStm.WriteUChar( nMask );
if( nMask & 0x01 ) rStm.WriteUChar( aAutomation );
if( nMask & 0x02 ) write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, aPrefix);
if( nMask & 0x04 ) WriteSvPersistBase( rStm, xClass );
}
SV_IMPL_META_FACTORY1( SvMetaClass, SvMetaType );
TYPEINIT1( SvMetaClass, SvMetaType );
SvMetaClass::SvMetaClass()
: aAutomation( true, false )
{
}
void SvMetaClass::Load( SvPersistStream & rStm )
{
SvMetaType::Load( rStm );
sal_uInt8 nMask;
rStm.ReadUChar( nMask );
if( nMask >= 0x20 )
{
rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
OSL_FAIL( "wrong format" );
return;
}
if( nMask & 0x01 ) rStm >> aAttrList;
if( nMask & 0x02 )
{
SvMetaClass * pSuper;
rStm >> pSuper;
aSuperClass = pSuper;
}
if( nMask & 0x04 ) rStm >> aClassList;
if( nMask & 0x8 )
{
SvMetaClass * p;
rStm >> p;
xAutomationInterface = p;
}
if( nMask & 0x10 ) rStm >> aAutomation;
}
void SvMetaClass::Save( SvPersistStream & rStm )
{
SvMetaType::Save( rStm );
// create mask
sal_uInt8 nMask = 0;
if( !aAttrList.empty() ) nMask |= 0x1;
if( aSuperClass.Is() ) nMask |= 0x2;
if( !aClassList.empty() ) nMask |= 0x4;
if( xAutomationInterface.Is() ) nMask |= 0x8;
if( aAutomation.IsSet() ) nMask |= 0x10;
// write data
rStm.WriteUChar( nMask );
if( nMask & 0x01 ) WriteSvDeclPersistList( rStm, aAttrList );
if( nMask & 0x02 ) WriteSvPersistBase( rStm, aSuperClass );
if( nMask & 0x04 ) WriteSvDeclPersistList( rStm, aClassList );
if( nMask & 0x08 ) WriteSvPersistBase( rStm, xAutomationInterface );
if( nMask & 0x10 ) rStm.WriteUChar( aAutomation );
}
void SvMetaClass::ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
......@@ -131,24 +46,6 @@ void SvMetaClass::ReadAttributesSvIdl( SvIdlDataBase & rBase,
aAutomation.ReadSvIdl( SvHash_Automation(), rInStm );
}
void SvMetaClass::WriteAttributesSvIdl( SvIdlDataBase & rBase,
SvStream & rOutStm, sal_uInt16 nTab )
{
SvMetaType::WriteAttributesSvIdl( rBase, rOutStm, nTab );
if( !aAutomation )
{
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "//class SvMetaClass" ) << endl;
if( !aAutomation )
{
WriteTab( rOutStm, nTab );
aAutomation.WriteSvIdl( SvHash_Automation(), rOutStm );
rOutStm.WriteChar( ';' ) << endl;
}
}
}
void SvMetaClass::ReadContextSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
......@@ -248,35 +145,6 @@ void SvMetaClass::ReadContextSvIdl( SvIdlDataBase & rBase,
rInStm.Seek( nTokPos );
}
void SvMetaClass::WriteContextSvIdl
(
SvIdlDataBase & rBase,
SvStream & rOutStm,
sal_uInt16 nTab
)
{
sal_uLong n;
for( n = 0; n < aAttrList.size(); n++ )
{
WriteTab( rOutStm, nTab );
aAttrList[n]->WriteSvIdl( rBase, rOutStm, nTab );
rOutStm.WriteChar( ';' ) << endl;
}
for( n = 0; n < aClassList.size(); n++ )
{
SvClassElement * pEle = aClassList[n];
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( SvHash_import()->GetName().getStr() ).WriteChar( ' ' )
.WriteCharPtr( pEle->GetPrefix().getStr() );
if( pEle->GetAutomation() )
rOutStm.WriteCharPtr( " [ " ).WriteCharPtr( SvHash_Automation()->GetName().getStr() )
.WriteCharPtr( " ]" );
if( !pEle->GetPrefix().isEmpty() )
rOutStm.WriteChar( ' ' ).WriteCharPtr( pEle->GetPrefix().getStr() );
rOutStm.WriteChar( ';' ) << endl;
}
}
bool SvMetaClass::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
{
sal_uLong nTokPos = rInStm.Tell();
......@@ -365,62 +233,19 @@ bool SvMetaClass::TestAttribute( SvIdlDataBase & rBase, SvTokenStream & rInStm,
return true;
}
void SvMetaClass::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab )
{
WriteHeaderSvIdl( rBase, rOutStm, nTab );
if( aSuperClass.Is() )
rOutStm.WriteCharPtr( " : " ).WriteCharPtr( aSuperClass->GetName().getString().getStr() );
rOutStm << endl;
SvMetaName::WriteSvIdl( rBase, rOutStm, nTab );
rOutStm << endl;
}
void SvMetaClass::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
void SvMetaClass::Write( SvIdlDataBase & rBase, SvStream &,
sal_uInt16,
WriteType nT, WriteAttribute )
{
rBase.aIFaceName = GetName().getString();
switch( nT )
{
case WRITE_ODL:
{
OSL_FAIL( "Not supported anymore!" );
break;
}
case WRITE_C_SOURCE:
case WRITE_C_HEADER:
{
OSL_FAIL( "Not supported anymore!" );
break;
}
case WRITE_DOCU:
{
rOutStm.WriteCharPtr( "<INTERFACE>" ) << endl;
rOutStm.WriteCharPtr( GetName().getString().getStr() );
if ( GetAutomation() )
rOutStm.WriteCharPtr( " ( Automation ) " );
rOutStm << endl;
WriteDescription( rOutStm );
rOutStm.WriteCharPtr( "</INTERFACE>" ) << endl << endl;
// write all attributes
sal_uLong n;
for( n = 0; n < aAttrList.size(); n++ )
{
SvMetaAttribute * pAttr = aAttrList[n];
if( !pAttr->GetHidden() )
{
if( pAttr->IsMethod() )
pAttr->Write( rBase, rOutStm, nTab, nT, WA_METHOD );
if( pAttr->IsVariable() )
pAttr->Write( rBase, rOutStm, nTab, nT, WA_VARIABLE );
}
}
break;
}
default:
break;
}
......@@ -644,14 +469,4 @@ void SvMetaClass::WriteSfx( SvIdlDataBase & rBase, SvStream & rOutStm )
aSlotList.clear();
}
void SvMetaClass::WriteHelpIds( SvIdlDataBase & rBase, SvStream & rOutStm,
HelpIdTable& rTable )
{
for( sal_uLong n=0; n<aAttrList.size(); n++ )
{
SvMetaAttribute * pAttr = aAttrList[n];
pAttr->WriteHelpId( rBase, rOutStm, rTable );
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
This diff is collapsed.
......@@ -107,13 +107,8 @@ char const * SyntaxStrings[] = {
NULL };
char CommandLineSyntax[] =
"-fs<slotmap file> -fl<listing file>\n"
"-fo<odl file> -fd<data base file>\n"
"-fi<item implementation> -ft<type library file> (not OLE)\n"
"-fr<resource file> -fm<makefile target file>\n"
"-fC<c++ source file> -fH<c++ header file>\n"
"-fc<c source file> -fh<c header file>\n"
"-rsc <*.srs header line>\n"
"-fs<slotmap file>\n"
"-fm<makefile target file>\n"
"-help, ? @<file> response file\n"
" <filenames>\n";
......@@ -139,30 +134,9 @@ bool ReadIdl( SvIdlWorkingBase * pDataBase, const SvCommand & rCommand )
SvFileStream aStm( aFileName, STREAM_STD_READ | STREAM_NOCREATE );
if( aStm.GetError() == SVSTREAM_OK )
{
if( SvIdlDataBase::IsBinaryFormat( aStm ) )
{
pDataBase->Load( aStm );
if( aStm.GetError() != SVSTREAM_OK )
{
OStringBuffer aStr;
if( aStm.GetError() == SVSTREAM_FILEFORMAT_ERROR )
aStr.append("error: incompatible format, file ");
else if( aStm.GetError() == SVSTREAM_WRONGVERSION )
aStr.append("error: wrong version, file ");
else
aStr.append("error during load, file ");
aStr.append(OUStringToOString(aFileName,
RTL_TEXTENCODING_UTF8));
fprintf( stderr, "%s\n", aStr.getStr() );
return false;
}
}
else
{
SvTokenStream aTokStm( aStm, aFileName );
if( !pDataBase->ReadSvIdl( aTokStm, false, rCommand.aPath ) )
return false;
}
SvTokenStream aTokStm( aStm, aFileName );
if( !pDataBase->ReadSvIdl( aTokStm, false, rCommand.aPath ) )
return false;
}
else
{
......@@ -211,7 +185,7 @@ static bool ResponseFile( StringList * pList, int argc, char ** argv )
}
SvCommand::SvCommand( int argc, char ** argv )
: nVerbosity(1), nFlags( 0 )
: nVerbosity(1)
{
StringList aList;
......@@ -234,53 +208,10 @@ SvCommand::SvCommand( int argc, char ** argv )
{ // name of slot output
aSlotMapFile = aName;
}
else if( 'l' == aFirstChar )
{ // name of listing
aListFile = aName;
}
else if( 'i' == aFirstChar )
{
}
else if( 'o' == aFirstChar )
{
}
else if( 'd' == aFirstChar )
{ // name of data set file
aDataBaseFile = aName;
}
else if( 'D' == aFirstChar )
{
}
else if( 'C' == aFirstChar )
{
}
else if( 'H' == aFirstChar )
{
}
else if( 'c' == aFirstChar )
{
}
else if( 'h' == aFirstChar )
{
}
else if( 't' == aFirstChar )
{
}
else if( 'm' == aFirstChar )
{ // name of info file
aTargetFile = aName;
}
else if( 'r' == aFirstChar )
{
}
else if( 'z' == aFirstChar )
{ // name of HelpId file
aHelpIdFile = aName;
}
else if( 'y' == aFirstChar )
{ // name of CSV file
aCSVFile = aName;
}
else if( 'x' == aFirstChar )
{ // name of IDL file for the CSV file
aExportFile = aName;
......
......@@ -31,7 +31,6 @@ SvIdlDataBase::SvIdlDataBase( const SvCommand& rCmd )
: bExport( false )
, nUniqueId( 0 )
, nVerbosity( rCmd.nVerbosity )
, aPersStream( *IDLAPP->pClassMgr, NULL )
, pIdTable( NULL )
{
sSlotMapFile = rCmd.aSlotMapFile;
......@@ -82,80 +81,6 @@ SvMetaModule * SvIdlDataBase::GetModule( const OString& rName )
return NULL;
}
#define DATABASE_SIGNATURE (sal_uInt32)0x13B799F2
#define DATABASE_VER 0x0006
bool SvIdlDataBase::IsBinaryFormat( SvStream & rStm )
{
sal_uInt32 nSig = 0;
sal_uLong nPos = rStm.Tell();
rStm.ReadUInt32( nSig );
rStm.Seek( nPos );
return nSig == DATABASE_SIGNATURE;
}
void SvIdlDataBase::Load( SvStream & rStm )
{
DBG_ASSERT( aTypeList.empty(), "type list already initialized" );
SvPersistStream aPStm( *IDLAPP->pClassMgr, &rStm );
sal_uInt16 nVersion = 0;
sal_uInt32 nSig = 0;
aPStm.ReadUInt32( nSig );
aPStm.ReadUInt16( nVersion );
if( nSig != DATABASE_SIGNATURE )
{
aPStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
return;
}
if( nVersion != DATABASE_VER )
{
aPStm.SetError( SVSTREAM_WRONGVERSION );
return;
}
aPStm >> aClassList;
aPStm >> aTypeList;
aPStm >> aAttrList;
aPStm >> aModuleList;
aPStm.ReadUInt32( nUniqueId );
if( aPStm.IsEof() )
aPStm.SetError( SVSTREAM_GENERALERROR );
}
void SvIdlDataBase::Save( SvStream & rStm, sal_uInt32 nFlags )
{
SvPersistStream aPStm( *IDLAPP->pClassMgr, &rStm );
aPStm.SetContextFlags( nFlags );
aPStm.WriteUInt32( DATABASE_SIGNATURE );
aPStm.WriteUInt16( DATABASE_VER );
bool bOnlyStreamedObjs = false;
if( nFlags & IDL_WRITE_CALLING )
bOnlyStreamedObjs = true;
if( bOnlyStreamedObjs )
{
SvMetaClassMemberList aList;
for( sal_uLong n = 0; n < GetModuleList().size(); n++ )
{
SvMetaModule * pModule = GetModuleList()[n];
if( !pModule->IsImported() )
aList.insert( pModule->GetClassList() );
}
WriteSvDeclPersistList( aPStm, aList );
}
else
WriteSvDeclPersistList( aPStm, aClassList );
aTypeList.WriteObjects( aPStm, bOnlyStreamedObjs );
aAttrList.WriteObjects( aPStm, bOnlyStreamedObjs );
aModuleList.WriteObjects( aPStm, bOnlyStreamedObjs );
aPStm.WriteUInt32( nUniqueId );
}
void SvIdlDataBase::SetError( const OString& rError, SvToken * pTok )
{
if( pTok->GetLine() > 10000 )
......@@ -638,25 +563,8 @@ bool SvIdlWorkingBase::ReadSvIdl( SvTokenStream & rInStm, bool bImported, const
osl::FileBase::getSystemPathFromFileURL( aFullName, aFullName );
this->AddDepFile(aFullName);
SvFileStream aStm( aFullName, STREAM_STD_READ | STREAM_NOCREATE );
Load( aStm );
if( aStm.GetError() != SVSTREAM_OK )
{
if( aStm.GetError() == SVSTREAM_WRONGVERSION )
{
OStringBuffer aStr("wrong version, file ");
aStr.append(OUStringToOString( aFullName, RTL_TEXTENCODING_UTF8));
SetError(aStr.makeStringAndClear(), pTok);
WriteError( rInStm );
bOk = false;
}
else
{
aStm.Seek( 0 );
aStm.ResetError();
SvTokenStream aTokStm( aStm, aFullName );
bOk = ReadSvIdl( aTokStm, true, rPath );
}
}
SvTokenStream aTokStm( aStm, aFullName );
bOk = ReadSvIdl( aTokStm, true, rPath );
}
else
bOk = false;
......@@ -697,33 +605,6 @@ bool SvIdlWorkingBase::ReadSvIdl( SvTokenStream & rInStm, bool bImported, const
return true;
}
bool SvIdlWorkingBase::WriteSvIdl( SvStream & rOutStm )
{
if( rOutStm.GetError() != SVSTREAM_OK )
return false;
SvStringHashList aList;
if( GetIdTable() )
{
GetIdTable()->FillHashList( &aList );
for ( size_t i = 0, n = aList.size(); i < n; ++i )
{
SvStringHashEntry* pEntry = aList[ i ];
rOutStm.WriteCharPtr( "#define " ).WriteCharPtr( pEntry->GetName().getStr() )
.WriteChar( '\t' )
.WriteCharPtr( OString::number(pEntry->GetValue()).getStr() )
<< endl;
}
}
for( sal_uLong n = 0; n < GetModuleList().size(); n++ )
{
SvMetaModule * pModule = GetModuleList()[n];
pModule->WriteSvIdl( *this, rOutStm, 0 );
}
return true;
}
bool SvIdlWorkingBase::WriteSfx( SvStream & rOutStm )
{
if( rOutStm.GetError() != SVSTREAM_OK )
......@@ -750,34 +631,6 @@ bool SvIdlWorkingBase::WriteSfx( SvStream & rOutStm )
return true;
}
bool SvIdlWorkingBase::WriteHelpIds( SvStream& rOutStm )
{
if( rOutStm.GetError() != SVSTREAM_OK )
return false;
HelpIdTable aIdTable;
sal_uLong n;
for( n = 0; n < GetModuleList().size(); n++ )
{
SvMetaModule * pModule = GetModuleList()[n];
pModule->WriteHelpIds( *this, rOutStm, aIdTable );
}
const SvMetaAttributeMemberList & rAttrList = GetAttrList();
for( n = 0; n < rAttrList.size(); n++ )
{
SvMetaAttribute * pAttr = rAttrList[n];
pAttr->WriteHelpId( *this, rOutStm, aIdTable );
}
return true;
}
bool SvIdlWorkingBase::WriteSfxItem( SvStream & )
{
return false;
}
void SvIdlDataBase::StartNewFile( const OUString& rName )
{
bExport = ( aExportFile.equalsIgnoreAsciiCase( rName ) );
......@@ -790,38 +643,6 @@ void SvIdlDataBase::AppendAttr( SvMetaAttribute *pAttr )
pAttr->SetNewAttribute( true );
}
bool SvIdlWorkingBase::WriteCSV( SvStream& rStrm )
{
SvMetaAttributeMemberList &rList = GetAttrList();
sal_uLong nCount = rList.size();
for ( sal_uLong n=0; n<nCount; n++ )
{
if ( rList[n]->IsNewAttribute() )
{
rList[n]->WriteCSV( *this, rStrm );
}
}
if ( rStrm.GetError() != SVSTREAM_OK )
return false;
else
return true;
}
bool SvIdlWorkingBase::WriteDocumentation( SvStream & rOutStm )
{
if( rOutStm.GetError() != SVSTREAM_OK )
return false;
for( sal_uLong n = 0; n < GetModuleList().size(); n++ )
{
SvMetaModule * pModule = GetModuleList()[n];
if( !pModule->IsImported() )
pModule->Write( *this, rOutStm, 0, WRITE_DOCU );
}
return true;
}
void SvIdlDataBase::AddDepFile(OUString const& rFileName)
{
m_DepFiles.insert(rFileName);
......
......@@ -34,36 +34,13 @@ IdlDll * GetIdlApp()
IdlDll::IdlDll()
: pHashTable( NULL )
, pClassMgr( NULL )
, pGlobalNames( NULL )
{
pClassMgr = new SvClassManager();
// File OBJECT.HXX:
pClassMgr->SV_CLASS_REGISTER( SvMetaAttribute );
pClassMgr->SV_CLASS_REGISTER( SvMetaClass );
//File SLOT.HXX:
pClassMgr->SV_CLASS_REGISTER( SvMetaSlot );
//File MODULE.HXX:
pClassMgr->SV_CLASS_REGISTER( SvMetaModule );
//File BASOBJ.HXX:
pClassMgr->SV_CLASS_REGISTER( SvMetaObject );
pClassMgr->SV_CLASS_REGISTER( SvMetaName );
pClassMgr->SV_CLASS_REGISTER( SvMetaExtern );
pClassMgr->SV_CLASS_REGISTER( SvMetaReference );
//File TYPES.HXX:
pClassMgr->SV_CLASS_REGISTER( SvMetaType );
pClassMgr->SV_CLASS_REGISTER( SvMetaTypeString );
pClassMgr->SV_CLASS_REGISTER( SvMetaEnumValue );
pClassMgr->SV_CLASS_REGISTER( SvMetaTypeEnum );
pClassMgr->SV_CLASS_REGISTER( SvMetaTypevoid );
pClassMgr->SV_CLASS_REGISTER( SvClassElement );
}
{}
IdlDll::~IdlDll()
{
delete pGlobalNames;
delete pClassMgr;
delete pHashTable;
}
......
......@@ -105,13 +105,7 @@ inline OUString tempFileHelper(OUString const & fname)
int main ( int argc, char ** argv)
{
OUString aTmpListFile;
OUString aTmpSlotMapFile;
OUString aTmpSfxItemFile;
OUString aTmpDataBaseFile;
OUString aTmpHelpIdFile;
OUString aTmpCSVFile;
OUString aTmpDocuFile;
OUString aTmpDepFile;
SvCommand aCommand( argc, argv );
......@@ -134,30 +128,6 @@ int main ( int argc, char ** argv)
if( ReadIdl( pDataBase, aCommand ) )
{
if( nExit == 0 && !aCommand.aDocuFile.isEmpty() )
{
aTmpDocuFile = tempFileHelper(aCommand.aDocuFile);
SvFileStream aOutStm( aTmpDocuFile, STREAM_READWRITE | STREAM_TRUNC );
if( !pDataBase->WriteDocumentation( aOutStm ) )
{
nExit = -1;
OStringBuffer aStr("cannot write documentation file: ");
aStr.append(OUStringToOString(aCommand.aDocuFile, RTL_TEXTENCODING_UTF8));
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if( nExit == 0 && !aCommand.aListFile.isEmpty() )
{
aTmpListFile = tempFileHelper(aCommand.aListFile);
SvFileStream aOutStm( aTmpListFile, STREAM_READWRITE | STREAM_TRUNC );
if( !pDataBase->WriteSvIdl( aOutStm ) )
{
nExit = -1;
OStringBuffer aStr("cannot write list file: ");
aStr.append(OUStringToOString(aCommand.aListFile, RTL_TEXTENCODING_UTF8));
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if( nExit == 0 && !aCommand.aSlotMapFile.isEmpty() )
{
aTmpSlotMapFile = tempFileHelper(aCommand.aSlotMapFile);
......@@ -170,55 +140,6 @@ int main ( int argc, char ** argv)
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if( nExit == 0 && !aCommand.aHelpIdFile.isEmpty() )
{
aTmpHelpIdFile = tempFileHelper(aCommand.aHelpIdFile);
SvFileStream aStm( aTmpHelpIdFile, STREAM_READWRITE | STREAM_TRUNC );
if (!pDataBase->WriteHelpIds( aStm ) )
{
nExit = -1;
OStringBuffer aStr("cannot write help ID file: ");
aStr.append(OUStringToOString(aCommand.aHelpIdFile, RTL_TEXTENCODING_UTF8));
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if( nExit == 0 && !aCommand.aCSVFile.isEmpty() )
{
aTmpCSVFile = tempFileHelper(aCommand.aCSVFile);
SvFileStream aStm( aTmpCSVFile, STREAM_READWRITE | STREAM_TRUNC );
if (!pDataBase->WriteCSV( aStm ) )
{
nExit = -1;
OStringBuffer aStr("cannot write CSV file: ");
aStr.append(OUStringToOString(aCommand.aCSVFile, RTL_TEXTENCODING_UTF8));
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if( nExit == 0 && !aCommand.aSfxItemFile.isEmpty() )
{
aTmpSfxItemFile = tempFileHelper(aCommand.aSfxItemFile);
SvFileStream aOutStm( aTmpSfxItemFile, STREAM_READWRITE | STREAM_TRUNC );
if( !pDataBase->WriteSfxItem( aOutStm ) )
{
nExit = -1;
OStringBuffer aStr("cannot write item file: ");
aStr.append(OUStringToOString(aCommand.aSfxItemFile, RTL_TEXTENCODING_UTF8));
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if( nExit == 0 && !aCommand.aDataBaseFile.isEmpty() )
{
aTmpDataBaseFile = tempFileHelper(aCommand.aDataBaseFile);
SvFileStream aOutStm( aTmpDataBaseFile, STREAM_READWRITE | STREAM_TRUNC );
pDataBase->Save( aOutStm, aCommand.nFlags );
if( aOutStm.GetError() != SVSTREAM_OK )
{
nExit = -1;
OStringBuffer aStr("cannot write database file: ");
aStr.append(OUStringToOString(aCommand.aDataBaseFile, RTL_TEXTENCODING_UTF8));
fprintf(stderr, "%s\n", aStr.getStr());
}
}
if (nExit == 0 && !aCommand.m_DepFile.isEmpty())
{
aTmpDepFile = tempFileHelper(aCommand.m_DepFile);
......@@ -241,14 +162,6 @@ int main ( int argc, char ** argv)
bool bErr = false;
bool bDoMove = aCommand.aTargetFile.isEmpty();
OUString aErrFile, aErrFile2;
if( !bErr && !aCommand.aListFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aListFile, aTmpListFile, bDoMove );
if( bErr ) {
aErrFile = aCommand.aListFile;
aErrFile2 = aTmpListFile;
}
}
if( !bErr && !aCommand.aSlotMapFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aSlotMapFile, aTmpSlotMapFile, bDoMove );
......@@ -257,46 +170,6 @@ int main ( int argc, char ** argv)
aErrFile2 = aTmpSlotMapFile;
}
}
if( !bErr && !aCommand.aSfxItemFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aSfxItemFile, aTmpSfxItemFile, bDoMove );
if( bErr ) {
aErrFile = aCommand.aSfxItemFile;
aErrFile2 = aTmpSfxItemFile;
}
}
if( !bErr && !aCommand.aDataBaseFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aDataBaseFile, aTmpDataBaseFile, bDoMove );
if( bErr ) {
aErrFile = aCommand.aDataBaseFile;
aErrFile2 = aTmpDataBaseFile;
}
}
if( !bErr && !aCommand.aHelpIdFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aHelpIdFile, aTmpHelpIdFile, bDoMove );
if( bErr ) {
aErrFile = aCommand.aHelpIdFile;
aErrFile2 = aTmpHelpIdFile;
}
}
if( !bErr && !aCommand.aCSVFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aCSVFile, aTmpCSVFile, bDoMove );
if( bErr ) {
aErrFile = aCommand.aCSVFile;
aErrFile2 = aTmpCSVFile;
}
}
if( !bErr && !aCommand.aDocuFile.isEmpty() )
{
bErr |= !FileMove_Impl( aCommand.aDocuFile, aTmpDocuFile, bDoMove );
if( bErr ) {
aErrFile = aCommand.aDocuFile;
aErrFile2 = aTmpDocuFile;
}
}
if (!bErr && !aCommand.m_DepFile.isEmpty())
{
bErr |= !FileMove_Impl( aCommand.m_DepFile, aTmpDepFile, bDoMove );
......@@ -330,26 +203,11 @@ int main ( int argc, char ** argv)
if( nExit != 0 )
{
if( !aCommand.aListFile.isEmpty() )
{
osl::FileBase::getSystemPathFromFileURL( aTmpListFile, aTmpListFile );
osl::File::remove( aTmpListFile );
}
if( !aCommand.aSlotMapFile.isEmpty() )
{
osl::FileBase::getSystemPathFromFileURL( aTmpSlotMapFile, aTmpSlotMapFile );
osl::File::remove( aTmpSlotMapFile );
}
if( !aCommand.aSfxItemFile.isEmpty() )
{
osl::FileBase::getSystemPathFromFileURL( aTmpSfxItemFile, aTmpSfxItemFile );
osl::File::remove( aTmpSfxItemFile );
}
if( !aCommand.aDataBaseFile.isEmpty() )
{
osl::FileBase::getSystemPathFromFileURL( aTmpDataBaseFile, aTmpDataBaseFile );
osl::File::remove( aTmpDataBaseFile );
}
}
delete pDataBase;
......
......@@ -98,54 +98,6 @@ public:
TOOLS_DLLPUBLIC friend SvPersistStream& operator >> ( SvPersistStream & rStm,
SvPersistBase *& rpObj );
};
typedef tools::SvRef<SvPersistBase> SvPersistBaseRef;
class SvPersistListWriteable
{
public:
virtual ~SvPersistListWriteable() {}
virtual size_t size() const = 0;
virtual SvPersistBase* GetPersistBase(size_t idx) const = 0;
};
class SvPersistListReadable
{
public:
virtual ~SvPersistListReadable() {}
virtual void push_back(SvPersistBase* p) = 0;
};
void TOOLS_DLLPUBLIC WritePersistListObjects(const SvPersistListWriteable& rList, SvPersistStream & rStm, bool bOnlyStreamed = false );
void TOOLS_DLLPUBLIC ReadObjects( SvPersistListReadable& rLst, SvPersistStream & rStm);
// <T> has to be a subtype of "SvPersistBase*"
template<typename T>
class SvDeclPersistList : public SvRefMemberList<T>,
public SvPersistListWriteable,
public SvPersistListReadable
{
public:
// implement the reader/writer adapter methods
size_t size() const SAL_OVERRIDE { return SvRefMemberList<T>::size(); }
SvPersistBase* GetPersistBase(size_t idx) const SAL_OVERRIDE { return SvRefMemberList<T>::operator[](idx); }
void push_back(SvPersistBase* p) SAL_OVERRIDE { SvRefMemberList<T>::push_back(static_cast<T>(p)); }
void WriteObjects(SvPersistStream & rStm, bool bOnlyStreamed ) const { WritePersistListObjects(*this, rStm, bOnlyStreamed); }
};
template<typename T>
SvPersistStream& WriteSvDeclPersistList(SvPersistStream &rStm, const SvDeclPersistList<T> &rLst)
{
WritePersistListObjects( rLst, rStm );
return rStm;
};
template<typename T>
SvPersistStream& operator >> (SvPersistStream &rStm, SvDeclPersistList<T> &rLst)
{
ReadObjects( rLst, rStm );
return rStm;
};
typedef UniqueIndex<SvPersistBase> SvPersistUIdx;
typedef std::map<SvPersistBase*, sal_uIntPtr> PersistBaseMap;
......
......@@ -30,9 +30,6 @@ $(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi $(gb_SdiTarget_SVIDLDEPS)
$(gb_SdiTarget_SVIDLCOMMAND) -quiet \
$(INCLUDE) \
-fs$@.hxx \
-fd$@.ilb \
-fl$@.lst \
-fz$@.sid \
-fx$(EXPORTS) \
-fm$@ \
$(if $(gb_FULLDEPS),-fM$(call gb_SdiTarget_get_dep_target,$*)) \
......@@ -60,8 +57,8 @@ endif
$(call gb_SdiTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),SDI,1)
-$(call gb_Helper_abbreviate_dirs,\
rm -f $(foreach ext,.hxx .ilb .lst .sid,\
$(call gb_SdiTarget_get_target,$*)$(ext)) \
rm -f \
$(call gb_SdiTarget_get_target,$*).hxx \
$(call gb_SdiTarget_get_dep_target,$*) \
$(call gb_SdiTarget_get_target,$*))
......
......@@ -42,85 +42,6 @@ SvCreateInstancePersist SvClassManager::Get( sal_Int32 nClassId )
// SvRttiBase
TYPEINIT0( SvRttiBase );
// SvPersistBaseMemberList
#define PERSIST_LIST_VER (sal_uInt8)0
#define PERSIST_LIST_DBGUTIL (sal_uInt8)0x80
void TOOLS_DLLPUBLIC WritePersistListObjects(const SvPersistListWriteable& rList, SvPersistStream & rStm, bool bOnlyStreamed )
{
#ifdef STOR_NO_OPTIMIZE
rStm.WriteUChar( (PERSIST_LIST_VER | PERSIST_LIST_DBGUTIL) );
sal_uInt32 nObjPos = rStm.WriteDummyLen();
#else
sal_uInt8 bTmp = PERSIST_LIST_VER;
rStm << bTmp;
#endif
sal_uInt32 nCountMember = rList.size();
sal_uIntPtr nCountPos = rStm.Tell();
sal_uInt32 nWriteCount = 0;
rStm.WriteUInt32( nCountMember );
// Don't change the list, as it causes side-effects while saving
for( sal_uIntPtr n = 0; n < nCountMember; n++ )
{
SvPersistBase * pObj = rList.GetPersistBase( n );
if( !bOnlyStreamed || rStm.IsStreamed( pObj ) )
{ // Object should be stored
WriteSvPersistBase(rStm, pObj);
nWriteCount++;
}
}
if( nWriteCount != nCountMember )
{
// Didn't write all members, adjust count
sal_uIntPtr nPos = rStm.Tell();
rStm.Seek( nCountPos );
rStm.WriteUInt32( nWriteCount );
rStm.Seek( nPos );
}
#ifdef STOR_NO_OPTIMIZE
rStm.WriteLen( nObjPos );
#endif
}
void TOOLS_DLLPUBLIC ReadObjects( SvPersistListReadable& rLst, SvPersistStream & rStm )
{
sal_uInt8 nVer;
rStm.ReadUChar( nVer );
if( (nVer & ~PERSIST_LIST_DBGUTIL) != PERSIST_LIST_VER )
{
rStm.SetError( SVSTREAM_GENERALERROR );
OSL_FAIL( "persist list, false version" );
}
sal_uInt32 nObjLen(0), nObjPos(0);
if( nVer & PERSIST_LIST_DBGUTIL )
nObjLen = rStm.ReadLen( &nObjPos );
sal_uInt32 nCount;
rStm.ReadUInt32( nCount );
for( sal_uIntPtr n = 0; n < nCount && rStm.GetError() == SVSTREAM_OK; n++ )
{
SvPersistBase * pObj;
rStm >> pObj;
if( pObj )
rLst.push_back( pObj );
}
#ifdef DBG_UTIL
if( nObjLen + nObjPos != rStm.Tell() )
{
OStringBuffer aStr("false list len: read = ");
aStr.append(static_cast<sal_Int64>(rStm.Tell() - nObjPos));
aStr.append(", should = ");
aStr.append(static_cast<sal_Int64>(nObjLen));
OSL_FAIL(aStr.getStr());
}
#else
(void)nObjLen;
#endif
}
/** Constructor
@param rMgr Stores factories for objects that can persisted
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment