summaryrefslogtreecommitdiff
path: root/idl/source/objects/types.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'idl/source/objects/types.cxx')
-rw-r--r--idl/source/objects/types.cxx803
1 files changed, 47 insertions, 756 deletions
diff --git a/idl/source/objects/types.cxx b/idl/source/objects/types.cxx
index 08e78141f9ea..af230a24912a 100644
--- a/idl/source/objects/types.cxx
+++ b/idl/source/objects/types.cxx
@@ -27,7 +27,7 @@
#include <globals.hxx>
#include <database.hxx>
-SV_IMPL_META_FACTORY1( SvMetaAttribute, SvMetaReference );
+TYPEINIT1( SvMetaAttribute, SvMetaReference );
SvMetaAttribute::SvMetaAttribute()
: aAutomation( true, false )
, aExport( true, false )
@@ -49,54 +49,6 @@ SvMetaAttribute::SvMetaAttribute( SvMetaType * pType )
{
}
-void SvMetaAttribute::Load( SvPersistStream & rStm )
-{
- SvMetaReference::Load( rStm );
-
- sal_uInt8 nMask;
- rStm.ReadUChar( nMask );
- if( nMask & 0x01 )
- {
- SvMetaType * pType;
- rStm >> pType;
- aType = pType;
- }
- if( nMask & 0x02 ) rStm >> aSlotId;
- if( nMask & 0x04 ) rStm >> aExport;
- if( nMask & 0x08 ) rStm >> aReadonly;
- if( nMask & 0x10 ) rStm >> aAutomation;
- if( nMask & 0x20 ) rStm >> aIsCollection;
- if( nMask & 0x40 ) rStm >> aReadOnlyDoc;
- if( nMask & 0x80 ) rStm >> aHidden;
-}
-
-void SvMetaAttribute::Save( SvPersistStream & rStm )
-{
- SvMetaReference::Save( rStm );
-
- // create mask
- sal_uInt8 nMask = 0;
- if( aType.Is() ) nMask |= 0x1;
- if( aSlotId.IsSet() ) nMask |= 0x2;
- if( aExport.IsSet() ) nMask |= 0x4;
- if( aReadonly.IsSet() ) nMask |= 0x8;
- if( aAutomation.IsSet() ) nMask |= 0x10;
- if( aIsCollection.IsSet() ) nMask |= 0x20;
- if( aReadOnlyDoc.IsSet() ) nMask |= 0x40;
- if( aHidden.IsSet() ) nMask |= 0x80;
-
- // write data
- rStm.WriteUChar( nMask );
- if( nMask & 0x1 ) WriteSvPersistBase( rStm, aType );
- if( nMask & 0x2 ) WriteSvNumberIdentifier( rStm, aSlotId );
- if( nMask & 0x4 ) rStm.WriteUChar( aExport );
- if( nMask & 0x8 ) rStm.WriteUChar( aReadonly );
- if( nMask & 0x10 ) rStm.WriteUChar( aAutomation );
- if( nMask & 0x20 ) rStm.WriteUChar( aIsCollection );
- if( nMask & 0x40 ) rStm.WriteUChar( aReadOnlyDoc );
- if( nMask & 0x80 ) rStm.WriteUChar( aHidden );
-}
-
SvMetaType * SvMetaAttribute::GetType() const
{
if( aType.Is() || !GetRef() ) return aType;
@@ -231,26 +183,6 @@ bool SvMetaAttribute::ReadSvIdl( SvIdlDataBase & rBase,
return bOk;
}
-void SvMetaAttribute::WriteSvIdl
-(
- SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab
-)
-{
- SvMetaType * pType = GetType();
- pType->WriteTypePrefix( rBase, rOutStm, nTab, WRITE_IDL );
- rOutStm.WriteChar( ' ' ).WriteCharPtr( GetName().getString().getStr() );
- if( aSlotId.IsSet() )
- rOutStm.WriteChar( ' ' ).WriteCharPtr( aSlotId.getString().getStr() );
- if( pType->GetType() == TYPE_METHOD )
- pType->WriteMethodArgs( rBase, rOutStm, nTab, WRITE_IDL );
- sal_uLong nPos = rOutStm.Tell();
- rOutStm << endl;
- SvMetaName::WriteSvIdl( rBase, rOutStm, nTab );
- TestAndSeekSpaceOnly( rOutStm, nPos );
-}
-
void SvMetaAttribute::ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
@@ -272,58 +204,6 @@ void SvMetaAttribute::ReadAttributesSvIdl( SvIdlDataBase & rBase,
}
}
-void SvMetaAttribute::WriteAttributesSvIdl
-(
- SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab
-)
-{
- SvMetaReference::WriteAttributesSvIdl( rBase, rOutStm, nTab );
-
- if( !aExport || !aAutomation || aReadonly )
- {
- WriteTab( rOutStm, nTab );
- rOutStm.WriteCharPtr( "//class SvMetaAttribute" ) << endl;
- if( !aExport )
- {
- WriteTab( rOutStm, nTab );
- aExport.WriteSvIdl( SvHash_Export(), rOutStm );
- rOutStm.WriteChar( ';' ) << endl;
- }
- if ( aHidden != aExport )
- {
- WriteTab( rOutStm, nTab );
- aExport.WriteSvIdl( SvHash_Hidden(), rOutStm );
- rOutStm.WriteChar( ';' ) << endl;
- }
- if( aReadonly )
- {
- WriteTab( rOutStm, nTab );
- aReadonly.WriteSvIdl( SvHash_Readonly(), rOutStm );
- rOutStm.WriteChar( ';' ) << endl;
- }
- if( !aAutomation )
- {
- WriteTab( rOutStm, nTab );
- aAutomation.WriteSvIdl( SvHash_Automation(), rOutStm );
- rOutStm.WriteChar( ';' ) << endl;
- }
- if( aIsCollection )
- {
- WriteTab( rOutStm, nTab );
- aIsCollection.WriteSvIdl( SvHash_IsCollection(), rOutStm );
- rOutStm.WriteChar( ';' ) << endl;
- }
- if( !aReadOnlyDoc )
- {
- WriteTab( rOutStm, nTab );
- aReadOnlyDoc.WriteSvIdl( SvHash_ReadOnlyDoc(), rOutStm );
- rOutStm.WriteChar( ';' ) << endl;
- }
- }
-}
-
void SvMetaAttribute::WriteParam( SvIdlDataBase & rBase,
SvStream & rOutStm,
sal_uInt16 nTab,
@@ -334,8 +214,7 @@ void SvMetaAttribute::WriteParam( SvIdlDataBase & rBase,
SvMetaType * pBaseType = pType->GetBaseType();
DBG_ASSERT( pBaseType, "no base type for attribute" );
- if( nT == WRITE_ODL || nT == WRITE_DOCU
- || nT == WRITE_C_HEADER || nT == WRITE_C_SOURCE )
+ if( nT == WRITE_C_HEADER || nT == WRITE_C_SOURCE )
{
if( pBaseType->GetType() == TYPE_STRUCT )
{
@@ -352,29 +231,14 @@ void SvMetaAttribute::WriteParam( SvIdlDataBase & rBase,
}
else
{
- if ( nT != WRITE_DOCU )
- {
- WriteTab( rOutStm, nTab );
- pBaseType->WriteTypePrefix( rBase, rOutStm, nTab, nT );
- }
+ WriteTab( rOutStm, nTab );
+ pBaseType->WriteTypePrefix( rBase, rOutStm, nTab, nT );
if( !GetName().getString().isEmpty() )
{
rOutStm.WriteChar( ' ' );
rOutStm.WriteCharPtr( GetName().getString().getStr() );
}
-
- if ( nT == WRITE_DOCU )
- {
- if( pBaseType->GetType() == TYPE_METHOD ||
- pBaseType->GetType() == TYPE_STRUCT ||
- pBaseType->GetType() == TYPE_ENUM )
- {
- OSL_FAIL( "Falscher Parametertyp!" );
- }
- else
- rOutStm.WriteCharPtr( pBaseType->GetBasicPostfix().getStr() );
- }
}
}
}
@@ -397,38 +261,10 @@ sal_uLong SvMetaAttribute::MakeSlotValue( SvIdlDataBase & rBase, bool bVar ) con
return n;
}
-void SvMetaAttribute::WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm,
- sal_uInt16 nTab,
- WriteType nT, WriteAttribute nA )
+void SvMetaAttribute::WriteAttributes( SvIdlDataBase &, SvStream &,
+ sal_uInt16,
+ WriteType, WriteAttribute )
{
- if( nT == WRITE_ODL )
- {
- const SvNumberIdentifier & rId = GetSlotId();
- bool bReadonly = GetReadonly() || ( nA & WA_READONLY );
- if( (rId.IsSet() && !(nA & WA_STRUCT)) || bReadonly )
- {
- bool bVar = IsVariable();
- if( nA & WA_VARIABLE )
- bVar = true;
- else if( nA & WA_METHOD )
- bVar = false;
-
- WriteTab( rOutStm, nTab );
- rOutStm.WriteCharPtr( "//class SvMetaAttribute" ) << endl;
- if( rId.IsSet() && !(nA & WA_STRUCT) )
- {
- WriteTab( rOutStm, nTab );
- rOutStm.WriteCharPtr( "id(" )
- .WriteCharPtr( OString::number(MakeSlotValue(rBase,bVar)).getStr() )
- .WriteCharPtr( ")," ) << endl;
- }
- if( bVar && (bReadonly || IsMethod()) )
- {
- WriteTab( rOutStm, nTab );
- rOutStm.WriteCharPtr( "readonly," ) << endl;
- }
- }
- }
}
void SvMetaAttribute::WriteCSource( SvIdlDataBase & rBase, SvStream & rOutStm,
@@ -524,11 +360,7 @@ void SvMetaAttribute::WriteRecursiv_Impl( SvIdlDataBase & rBase,
for( sal_uLong i = 0; i < nCount; i++ )
{
SvMetaAttribute *pAttr = rList[i];
- if ( nT == WRITE_DOCU )
- pAttr->SetDescription( GetDescription().getString() );
pAttr->Write( rBase, rOutStm, nTab, nT, nA );
- if( nT == WRITE_ODL && i +1 < nCount )
- rOutStm.WriteChar( ';' ) << endl;
}
rBase.aStructSlotId = slotId;
@@ -539,12 +371,7 @@ void SvMetaAttribute::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
WriteType nT, WriteAttribute nA )
{
// no attributes for automation
- if( nT == WRITE_DOCU )
- {
- if ( GetHidden() )
- return;
- }
- else if ( !GetAutomation() || !GetExport() )
+ if ( !GetAutomation() || !GetExport() )
return;
bool bVariable;
@@ -561,29 +388,7 @@ void SvMetaAttribute::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
DBG_ASSERT( pBaseType, "no base type for attribute" );
int nBType = pBaseType->GetType();
- if( nT == WRITE_ODL )
- {
- if( (bVariable && IsVariable()) || (!bVariable && IsMethod()) )
- {
- if( nBType == TYPE_STRUCT )
- WriteRecursiv_Impl( rBase, rOutStm, nTab, nT, nA );
- else
- {
- SvMetaReference::Write( rBase, rOutStm, nTab, nT, nA );
- WriteTab( rOutStm, nTab );
- pBaseType->WriteTypePrefix( rBase, rOutStm, nTab, nT );
-
- if( !GetName().getString().isEmpty() )
- {
- rOutStm.WriteChar( ' ' );
- rOutStm.WriteCharPtr( GetName().getString().getStr() );
- }
- if( pType->GetType() == TYPE_METHOD )
- pType->WriteMethodArgs( rBase, rOutStm, nTab, nT );
- }
- }
- }
- else if( nT == WRITE_C_HEADER || nT == WRITE_C_SOURCE )
+ if( nT == WRITE_C_HEADER || nT == WRITE_C_SOURCE )
{
if( !bVariable && IsMethod() )
{
@@ -643,75 +448,6 @@ void SvMetaAttribute::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
}
}
}
- else if ( nT == WRITE_DOCU )
- {
- if( !bVariable && IsMethod() )
- {
- rOutStm.WriteCharPtr( "<METHOD>" ) << endl;
- rOutStm.WriteCharPtr( GetSlotId().getString().getStr() ) << endl;
- rOutStm.WriteCharPtr( GetName().getString().getStr() ) << endl
- << endl; // readonly
-
- // return type
- SvMetaType* pType2 = GetType();
- SvMetaType* pBaseType2 = pType2->GetBaseType();
- rOutStm.WriteCharPtr( pBaseType2->GetReturnType()->GetBaseType()->GetBasicName().getStr() ) << endl;
-
- DBG_ASSERT( !pBaseType2->GetReturnType()->GetBaseType()->GetBasicName().isEmpty(),
- "Leerer BasicName" );
-
- // syntax
- rOutStm.WriteCharPtr( GetName().getString().getStr() );
- pType2->WriteMethodArgs( rBase, rOutStm, nTab, nT );
-
- // C return type
- pBaseType2->WriteTypePrefix( rBase, rOutStm, 0, WRITE_C_HEADER );
- rOutStm << endl;
-
- // for methods also C syntax
- rOutStm.WriteCharPtr( "<C-SYNTAX>" ) << endl;
- Write( rBase, rOutStm, 0, WRITE_C_HEADER, nA );
- rOutStm.WriteCharPtr( "</C-SYNTAX>" ) << endl;
-
- // description
- WriteDescription( rOutStm );
- rOutStm.WriteCharPtr( "</METHOD>" ) << endl << endl;
- }
- else if( bVariable && IsVariable() )
- {
- if( nBType == TYPE_STRUCT )
- {
- WriteRecursiv_Impl( rBase, rOutStm, nTab, nT, nA );
- }
- else
- {
- rOutStm.WriteCharPtr( "<PROPERTY>" ) << endl;
- rOutStm.WriteCharPtr( GetSlotId().getString().getStr() ) << endl;
- rOutStm.WriteCharPtr( GetName().getString().getStr() ) << endl;
- if ( GetReadonly() )
- rOutStm.WriteCharPtr( "(nur lesen)" ) << endl;
- else
- rOutStm << endl;
-
- // for properties type instead of the return value
- rOutStm.WriteCharPtr( pBaseType->GetBasicName().getStr() ) << endl;
-
- DBG_ASSERT( !pBaseType->GetBasicName().isEmpty(),
- "Leerer BasicName" );
-
- // for properties no syntax
- rOutStm << endl;
-
- // C return type
- pBaseType->WriteTypePrefix( rBase, rOutStm, 0, WRITE_C_HEADER );
- rOutStm << endl;
-
- // description
- WriteDescription( rOutStm );
- rOutStm.WriteCharPtr( "</PROPERTY>" ) << endl << endl;
- }
- }
- }
}
sal_uLong SvMetaAttribute::MakeSfx( OStringBuffer& rAttrArray )
@@ -737,11 +473,7 @@ void SvMetaAttribute::Insert (SvSlotElementList&, const OString&, SvIdlDataBase&
{
}
-void SvMetaAttribute::WriteHelpId( SvIdlDataBase &, SvStream &, HelpIdTable& )
-{
-}
-
-SV_IMPL_META_FACTORY1( SvMetaType, SvMetaExtern );
+TYPEINIT1( SvMetaType, SvMetaExtern );
#define CTOR \
: aCall0( CALL_VALUE, false ) \
, aCall1( CALL_VALUE, false ) \
@@ -788,76 +520,6 @@ SvMetaType::~SvMetaType() {
delete pAttrList;
}
-void SvMetaType::Load( SvPersistStream & rStm )
-{
- SvMetaExtern::Load( rStm );
-
- sal_uInt16 nMask;
- rStm.ReadUInt16( nMask );
- if( nMask & 0x0001 ) rStm >> aIn;
- if( nMask & 0x0002 ) rStm >> aOut;
- if( nMask & 0x0004 ) rStm >> aCall0;
- if( nMask & 0x0008 ) rStm >> aCall1;
- if( nMask & 0x0010 ) rStm >> aSbxDataType;
- if( nMask & 0x0020 ) rStm >> aSvName;
- if( nMask & 0x0040 ) rStm >> aSbxName;
- if( nMask & 0x0080 ) rStm >> aOdlName;
- if( nMask & 0x0100 ) rStm >> GetAttrList();
- if( nMask & 0x0200 ) bIsItem = true;
- if( nMask & 0x0400 ) bIsShell = true;
- if( nMask & 0x0800 )
- {
- sal_uInt16 nT;
- rStm.ReadUInt16( nT );
- nType = nT;
- }
- if( nMask & 0x1000 ) rStm.ReadChar( cParserChar );
- if( nMask & 0x2000 ) rStm >> aCName;
- if( nMask & 0x4000 ) rStm >> aBasicName;
- if( nMask & 0x8000 ) rStm >> aBasicPostfix;
-}
-
-void SvMetaType::Save( SvPersistStream & rStm )
-{
- SvMetaExtern::Save( rStm );
-
- // create mask
- sal_uInt16 nMask = 0;
- if( aIn.IsSet() ) nMask |= 0x0001;
- if( aOut.IsSet() ) nMask |= 0x0002;
- if( aCall0.IsSet() ) nMask |= 0x0004;
- if( aCall1.IsSet() ) nMask |= 0x0008;
- if( aSbxDataType.IsSet() ) nMask |= 0x0010;
- if( aSvName.IsSet() ) nMask |= 0x0020;
- if( aSbxName.IsSet() ) nMask |= 0x0040;
- if( aOdlName.IsSet() ) nMask |= 0x0080;
- if( GetAttrCount() ) nMask |= 0x0100;
- if( bIsItem ) nMask |= 0x0200;
- if( bIsShell ) nMask |= 0x0400;
- if( nType != TYPE_BASE ) nMask |= 0x0800;
- if( cParserChar != 'h' ) nMask |= 0x1000;
- if( aCName.IsSet() ) nMask |= 0x2000;
- if( aBasicName.IsSet() ) nMask |= 0x4000;
- if( aBasicPostfix.IsSet() ) nMask |= 0x8000;
-
- // write data
- rStm.WriteUInt16( nMask );
- if( nMask & 0x0001 ) WriteSvBOOL( rStm, aIn );
- if( nMask & 0x0002 ) WriteSvBOOL( rStm, aOut );
- if( nMask & 0x0004 ) WriteSvint( rStm, aCall0 );
- if( nMask & 0x0008 ) WriteSvint( rStm, aCall1 );
- if( nMask & 0x0010 ) WriteSvint( rStm, aSbxDataType );
- if( nMask & 0x0020 ) WriteSvIdentifier( rStm, aSvName );
- if( nMask & 0x0040 ) WriteSvIdentifier( rStm, aSbxName );
- if( nMask & 0x0080 ) WriteSvIdentifier( rStm, aOdlName );
- if( nMask & 0x0100 ) WriteSvDeclPersistList( rStm, *pAttrList );
- if( nMask & 0x0800 ) rStm.WriteUInt16( nType );
- if( nMask & 0x1000 ) rStm.WriteChar( cParserChar );
- if( nMask & 0x2000 ) WriteSvIdentifier( rStm, aCName );
- if( nMask & 0x4000 ) WriteSvIdentifier( rStm, aBasicName );
- if( nMask & 0x8000 ) WriteSvIdentifier( rStm, aBasicPostfix );
-}
-
SvMetaAttributeMemberList & SvMetaType::GetAttrList() const
{
if( !pAttrList )
@@ -1114,26 +776,6 @@ bool SvMetaType::ReadSvIdl( SvIdlDataBase & rBase,
return false;
}
-void SvMetaType::WriteSvIdl
-(
- SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab
-)
-{
- WriteHeaderSvIdl( rBase, rOutStm, nTab );
- if( GetType() == TYPE_METHOD )
- WriteMethodArgs( rBase, rOutStm, nTab, WRITE_IDL );
-
- sal_uLong nOldPos = rOutStm.Tell();
- rOutStm << endl;
- SvMetaExtern::WriteSvIdl( rBase, rOutStm, nTab );
- if( TestAndSeekSpaceOnly( rOutStm, nOldPos ) )
- // nothin written
- rOutStm.Seek( nOldPos );
- rOutStm.WriteChar( ';' ) << endl;
-}
-
void SvMetaType::WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
WriteType nT, WriteAttribute nA )
@@ -1163,7 +805,7 @@ void SvMetaType::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
return;
OString name = GetName().getString();
- if( nT == WRITE_ODL || nT == WRITE_C_HEADER || nT == WRITE_CXX_HEADER )
+ if( nT == WRITE_C_HEADER )
{
switch( nType )
{
@@ -1179,7 +821,7 @@ void SvMetaType::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
if( nType == TYPE_STRUCT || nType == TYPE_UNION )
nA = WA_STRUCT;
- if( nT == WRITE_ODL || nT == WRITE_C_HEADER)
+ if( nT == WRITE_C_HEADER)
{
if ( nT == WRITE_C_HEADER )
{
@@ -1190,8 +832,6 @@ void SvMetaType::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
WriteTab( rOutStm, nTab );
rOutStm.WriteCharPtr( "typedef" ) << endl;
- if ( nT == WRITE_ODL )
- SvMetaName::Write( rBase, rOutStm, nTab, nT, nA );
}
WriteTab( rOutStm, nTab );
if( nType == TYPE_STRUCT )
@@ -1200,7 +840,7 @@ void SvMetaType::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
rOutStm.WriteCharPtr( "union" );
else
rOutStm.WriteCharPtr( "enum" );
- if( nT != WRITE_ODL && nT != WRITE_C_HEADER)
+ if( nT != WRITE_C_HEADER)
rOutStm.WriteChar( ' ' ).WriteCharPtr( name.getStr() );
rOutStm << endl;
@@ -1209,7 +849,7 @@ void SvMetaType::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
WriteContext( rBase, rOutStm, nTab +1, nT, nA );
WriteTab( rOutStm, nTab );
rOutStm.WriteChar( '}' );
- if( nT == WRITE_ODL || nT == WRITE_C_HEADER )
+ if( nT == WRITE_C_HEADER )
{
rOutStm.WriteChar( ' ' ).WriteCharPtr( C_PREF ).WriteCharPtr( name.getStr() );
}
@@ -1241,66 +881,6 @@ bool SvMetaType::ReadNamesSvIdl( SvIdlDataBase & rBase,
return bOk;
}
-void SvMetaType::WriteHeaderSvIdl( SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab )
-{
- switch( nType )
- {
- case TYPE_CLASS:
- {
- if( IsShell() )
- rOutStm.WriteCharPtr( SvHash_shell()->GetName().getStr() );
- else
- rOutStm.WriteCharPtr( SvHash_interface()->GetName().getStr() );
- rOutStm.WriteChar( ' ' ).WriteCharPtr( GetName().getString().getStr() );
- }
- break;
- case TYPE_STRUCT:
- {
- rOutStm.WriteCharPtr( SvHash_struct()->GetName().getStr() )
- .WriteChar( ' ' ).WriteCharPtr( GetName().getString().getStr() );
- }
- break;
- case TYPE_UNION:
- {
- rOutStm.WriteCharPtr( SvHash_union()->GetName().getStr() )
- .WriteChar( ' ' ).WriteCharPtr( GetName().getString().getStr() );
- }
- break;
- case TYPE_ENUM:
- {
- rOutStm.WriteCharPtr( SvHash_enum()->GetName().getStr() )
- .WriteChar( ' ' ).WriteCharPtr( GetName().getString().getStr() );
- }
- break;
- case TYPE_POINTER:
- case TYPE_BASE:
- {
- if( IsItem() )
- rOutStm.WriteCharPtr( SvHash_item()->GetName().getStr() ).WriteChar( ' ' );
- else
- rOutStm.WriteCharPtr( SvHash_typedef()->GetName().getStr() ).WriteChar( ' ' );
- if( GetRef() )
- {
- static_cast<SvMetaType *>(GetRef())->WriteTheType( rBase, rOutStm, nTab, WRITE_IDL );
- rOutStm.WriteChar( ' ' );
- }
- rOutStm.WriteCharPtr( GetName().getString().getStr() );
- }
- break;
- case TYPE_METHOD:
- {
- rOutStm.WriteCharPtr( SvHash_typedef()->GetName().getStr() ).WriteChar( ' ' );
- static_cast<SvMetaType *>(GetRef())->WriteTheType( rBase, rOutStm, nTab, WRITE_IDL );
- rOutStm.WriteChar( ' ' ).WriteCharPtr( GetName().getString().getStr() ).WriteCharPtr( "( " );
- WriteContextSvIdl( rBase, rOutStm, nTab );
- rOutStm.WriteCharPtr( " )" );
- }
- break;
- }
-}
-
void SvMetaType::ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
@@ -1310,37 +890,6 @@ void SvMetaType::ReadAttributesSvIdl( SvIdlDataBase & rBase,
aOdlName.ReadSvIdl( SvHash_OdlName(), rInStm );
}
-void SvMetaType::WriteAttributesSvIdl( SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab )
-{
- SvMetaExtern::WriteAttributesSvIdl( rBase, rOutStm, nTab );
- OString name = GetName().getString();
- if( aSvName.getString() != name || aSbxName.getString() != name || aOdlName.getString() != name )
- {
- WriteTab( rOutStm, nTab );
- rOutStm.WriteCharPtr( "class SvMetaType" ) << endl;
- if( aSvName.getString() != name )
- {
- WriteTab( rOutStm, nTab );
- aSvName.WriteSvIdl( SvHash_SvName(), rOutStm, nTab );
- rOutStm << endl;
- }
- if( aSbxName.getString() != name )
- {
- WriteTab( rOutStm, nTab );
- aSbxName.WriteSvIdl( SvHash_SbxName(), rOutStm, nTab );
- rOutStm << endl;
- }
- if( aOdlName.getString() != name )
- {
- WriteTab( rOutStm, nTab );
- aOdlName.WriteSvIdl( SvHash_OdlName(), rOutStm, nTab );
- rOutStm << endl;
- }
- }
-}
-
void SvMetaType::ReadContextSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
@@ -1352,30 +901,6 @@ void SvMetaType::ReadContextSvIdl( SvIdlDataBase & rBase,
}
}
-void SvMetaType::WriteContextSvIdl
-(
- SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab
-)
-{
- if( GetAttrCount() )
- {
- SvMetaAttributeMemberList::const_iterator it = pAttrList->begin();
- while( it != pAttrList->end() )
- {
- SvMetaAttribute * pAttr = *it;
- WriteTab( rOutStm, nTab );
- pAttr->WriteSvIdl( rBase, rOutStm, nTab );
- if( GetType() == TYPE_METHOD )
- rOutStm.WriteChar( ',' ) << endl;
- else
- rOutStm.WriteChar( ';' ) << endl;
- ++it;
- }
- }
-}
-
void SvMetaType::WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
WriteType nT, WriteAttribute nA )
@@ -1495,98 +1020,49 @@ void SvMetaType::WriteMethodArgs
sal_uInt16 nTab, WriteType nT
)
{
- if( nT == WRITE_IDL )
+ rOutStm.WriteChar( '(' );
+ if( nT == WRITE_C_HEADER || nT == WRITE_C_SOURCE )
{
+ rOutStm.WriteChar( ' ' ).WriteCharPtr( C_PREF ).WriteCharPtr( "Object h" ).WriteCharPtr( rBase.aIFaceName.getStr() );
if( GetAttrCount() )
- {
- rOutStm << endl;
- WriteTab( rOutStm, nTab );
- rOutStm.WriteChar( '(' ) << endl;
-
- SvMetaAttributeMemberList::const_iterator it = pAttrList->begin();
- while( it != pAttrList->end() )
- {
- SvMetaAttribute * pAttr = *it;
- WriteTab( rOutStm, nTab +1 );
- pAttr->WriteSvIdl( rBase, rOutStm, nTab +1 );
- ++it;
- if( it != pAttrList->end() )
- rOutStm.WriteChar( ',' ) << endl;
- }
- rOutStm << endl;
- WriteTab( rOutStm, nTab );
- rOutStm.WriteChar( ')' );
- }
+ rOutStm.WriteChar( ',' );
else
- rOutStm.WriteCharPtr( "()" );
+ rOutStm.WriteChar( ' ' );
}
- else if ( nT == WRITE_DOCU )
- {
- rOutStm.WriteChar( '(' );
- if( GetAttrCount() )
- {
- SvMetaAttributeMemberList::const_iterator it = pAttrList->begin();
- while( it != pAttrList->end() )
- {
- SvMetaAttribute * pAttr = *it;
- pAttr->WriteParam( rBase, rOutStm, nTab+1, nT );
- ++it;
- if( it != pAttrList->end() )
- rOutStm.WriteChar( ',' );
- else
- rOutStm.WriteChar( ' ' );
- }
- }
- rOutStm.WriteChar( ')' ) << endl;
- }
- else
+ if( GetAttrCount() )
{
- rOutStm.WriteChar( '(' );
- if( nT == WRITE_C_HEADER || nT == WRITE_C_SOURCE )
- {
- rOutStm.WriteChar( ' ' ).WriteCharPtr( C_PREF ).WriteCharPtr( "Object h" ).WriteCharPtr( rBase.aIFaceName.getStr() );
- if( GetAttrCount() )
- rOutStm.WriteChar( ',' );
- else
- rOutStm.WriteChar( ' ' );
- }
-
- if( GetAttrCount() )
+ rOutStm << endl;
+ SvMetaAttributeMemberList::const_iterator it = pAttrList->begin();
+ while( it != pAttrList->end() )
{
- rOutStm << endl;
- SvMetaAttributeMemberList::const_iterator it = pAttrList->begin();
- while( it != pAttrList->end() )
+ SvMetaAttribute* pAttr = *it;
+ switch( nT )
{
- SvMetaAttribute* pAttr = *it;
- switch( nT )
+ case WRITE_C_HEADER:
+ case WRITE_C_SOURCE:
{
- case WRITE_C_HEADER:
- case WRITE_C_SOURCE:
- case WRITE_ODL:
- {
- pAttr->WriteParam( rBase, rOutStm, nTab +1, nT );
- }
- break;
+ pAttr->WriteParam( rBase, rOutStm, nTab +1, nT );
+ }
+ break;
- default:
- {
- DBG_ASSERT( false, "WriteType not implemented" );
- }
+ default:
+ {
+ DBG_ASSERT( false, "WriteType not implemented" );
}
- ++it;
- if( it != pAttrList->end() )
- rOutStm.WriteChar( ',' ) << endl;
- }
- if( nT != WRITE_C_HEADER && nT != WRITE_C_SOURCE )
- {
- rOutStm << endl;
- WriteTab( rOutStm, nTab +1 );
}
- rOutStm.WriteChar( ' ' );
+ ++it;
+ if( it != pAttrList->end() )
+ rOutStm.WriteChar( ',' ) << endl;
+ }
+ if( nT != WRITE_C_HEADER && nT != WRITE_C_SOURCE )
+ {
+ rOutStm << endl;
+ WriteTab( rOutStm, nTab +1 );
}
- rOutStm.WriteChar( ')' );
+ rOutStm.WriteChar( ' ' );
}
+ rOutStm.WriteChar( ')' );
}
void SvMetaType::WriteTypePrefix( SvIdlDataBase & rBase, SvStream & rOutStm,
@@ -1594,54 +1070,8 @@ void SvMetaType::WriteTypePrefix( SvIdlDataBase & rBase, SvStream & rOutStm,
{
switch( nT )
{
- case WRITE_IDL:
- {
- if( GetIn() && GetOut() )
- rOutStm.WriteCharPtr( SvHash_inout()->GetName().getStr() ).WriteChar( ' ' );
- else if( GetIn() )
- rOutStm.WriteCharPtr( SvHash_in()->GetName().getStr() ).WriteChar( ' ' );
- else if( GetOut() )
- rOutStm.WriteCharPtr( SvHash_out()->GetName().getStr() ).WriteChar( ' ' );
- rOutStm.WriteCharPtr( GetCString().getStr() );
- }
- break;
-
- case WRITE_ODL:
- {
- bool bIn = GetIn();
- bool bOut = GetOut();
- if( bIn || bOut )
- {
- if( bIn && bOut )
- rOutStm.WriteCharPtr( "[in,out] " );
- else if( bIn )
- rOutStm.WriteCharPtr( "[in] " );
- else if( bOut )
- rOutStm.WriteCharPtr( "[out] " );
- }
-
- OString out;
- if( GetType() == TYPE_METHOD )
- out = GetReturnType()->GetBaseType()->GetOdlName();
- else
- {
- SvMetaType * pBType = GetBaseType();
- out = pBType->GetOdlName();
- }
- if( aCall0 == (int)CALL_POINTER
- || aCall0 == (int)CALL_REFERENCE )
- rOutStm.WriteCharPtr( " *" );
- if( aCall1 == (int)CALL_POINTER
- || aCall1 == (int)CALL_REFERENCE )
- rOutStm.WriteCharPtr( " *" );
- rOutStm.WriteCharPtr( out.getStr() );
- }
- break;
-
case WRITE_C_HEADER:
case WRITE_C_SOURCE:
- case WRITE_CXX_HEADER:
- case WRITE_CXX_SOURCE:
{
SvMetaType * pBaseType = GetBaseType();
@@ -1672,29 +1102,6 @@ void SvMetaType::WriteTypePrefix( SvIdlDataBase & rBase, SvStream & rOutStm,
}
break;
- case WRITE_DOCU:
- {
-
- SvMetaType * pBaseType = GetBaseType();
- DBG_ASSERT( pBaseType, "no base type for attribute" );
-
- if( pBaseType->GetType() == TYPE_METHOD )
- {
- pBaseType->GetReturnType()->WriteTypePrefix(
- rBase, rOutStm, nTab, nT );
- }
- else
- {
- if( TYPE_STRUCT == pBaseType->GetType() )
- rOutStm.WriteCharPtr( "VARIANT" ).WriteCharPtr( pBaseType->GetName().getString().getStr() );
- else if ( pBaseType->GetType() == TYPE_ENUM )
- rOutStm.WriteCharPtr( "integer" );
- else
- rOutStm.WriteCharPtr( pBaseType->GetOdlName().getStr() );
- }
- }
- break;
-
default:
{
DBG_ASSERT( false, "WriteType not implemented" );
@@ -1763,55 +1170,17 @@ void SvMetaType::WriteParamNames( SvIdlDataBase & rBase,
}
}
-SV_IMPL_META_FACTORY1( SvMetaTypeString, SvMetaType );
+TYPEINIT1( SvMetaTypeString, SvMetaType );
SvMetaTypeString::SvMetaTypeString()
: SvMetaType( "String", "SbxSTRING", "BSTR", 's', "char *", "String", "$" )
{
}
-void SvMetaTypeString::Load( SvPersistStream & rStm )
-{
- SvMetaType::Load( rStm );
-}
-
-void SvMetaTypeString::Save( SvPersistStream & rStm )
-{
- SvMetaType::Save( rStm );
-}
-
-SV_IMPL_META_FACTORY1( SvMetaEnumValue, SvMetaName );
+TYPEINIT1( SvMetaEnumValue, SvMetaName );
SvMetaEnumValue::SvMetaEnumValue()
{
}
-void SvMetaEnumValue::Load( SvPersistStream & rStm )
-{
- SvMetaName::Load( rStm );
-
- sal_uInt8 nMask;
- rStm.ReadUChar( nMask );
- if( nMask >= 0x02 )
- {
- rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
- OSL_FAIL( "wrong format" );
- return;
- }
- if( nMask & 0x01 ) aEnumValue = read_uInt16_lenPrefixed_uInt8s_ToOString(rStm);
-}
-
-void SvMetaEnumValue::Save( SvPersistStream & rStm )
-{
- SvMetaName::Save( rStm );
-
- // create mask
- sal_uInt8 nMask = 0;
- if( !aEnumValue.isEmpty() ) nMask |= 0x01;
-
- // write data
- rStm.WriteUChar( nMask );
- if( nMask & 0x01 ) write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, aEnumValue);
-}
-
bool SvMetaEnumValue::ReadSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
@@ -1820,11 +1189,6 @@ bool SvMetaEnumValue::ReadSvIdl( SvIdlDataBase & rBase,
return true;
}
-void SvMetaEnumValue::WriteSvIdl( SvIdlDataBase &, SvStream & rOutStm, sal_uInt16 )
-{
- rOutStm.WriteCharPtr( GetName().getString().getStr() );
-}
-
void SvMetaEnumValue::Write( SvIdlDataBase &, SvStream & rOutStm, sal_uInt16,
WriteType nT, WriteAttribute )
{
@@ -1834,43 +1198,12 @@ void SvMetaEnumValue::Write( SvIdlDataBase &, SvStream & rOutStm, sal_uInt16,
rOutStm.WriteCharPtr( GetName().getString().getStr() );
}
-SV_IMPL_META_FACTORY1( SvMetaTypeEnum, SvMetaType );
+TYPEINIT1( SvMetaTypeEnum, SvMetaType );
SvMetaTypeEnum::SvMetaTypeEnum()
{
SetBasicName("Integer");
}
-void SvMetaTypeEnum::Load( SvPersistStream & rStm )
-{
- SvMetaType::Load( rStm );
-
- sal_uInt8 nMask;
- rStm.ReadUChar( nMask );
- if( nMask >= 0x04 )
- {
- rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
- OSL_FAIL( "wrong format" );
- return;
- }
- if( nMask & 0x01 ) rStm >> aEnumValueList;
- if( nMask & 0x02 ) aPrefix = read_uInt16_lenPrefixed_uInt8s_ToOString(rStm);
-}
-
-void SvMetaTypeEnum::Save( SvPersistStream & rStm )
-{
- SvMetaType::Save( rStm );
-
- // create mask
- sal_uInt8 nMask = 0;
- if( !aEnumValueList.empty() ) nMask |= 0x01;
- if( !aPrefix.isEmpty() ) nMask |= 0x02;
-
- // write data
- rStm.WriteUChar( nMask );
- if( nMask & 0x01 ) WriteSvDeclPersistList( rStm, aEnumValueList );
- if( nMask & 0x02 ) write_uInt16_lenPrefixed_uInt8s_FromOString(rStm, aPrefix);
-}
-
namespace
{
OString getCommonSubPrefix(const OString &rA, const OString &rB)
@@ -1911,21 +1244,6 @@ void SvMetaTypeEnum::ReadContextSvIdl( SvIdlDataBase & rBase,
rInStm.Seek( nTokPos );
}
-void SvMetaTypeEnum::WriteContextSvIdl( SvIdlDataBase & rBase,
- SvStream & rOutStm,
- sal_uInt16 nTab )
-{
- WriteTab( rOutStm, nTab +1 );
- for( sal_uLong n = 0; n < aEnumValueList.size(); n++ )
- {
- aEnumValueList[n]->WriteSvIdl( rBase, rOutStm, nTab );
- if( n + 1 != aEnumValueList.size() )
- rOutStm.WriteCharPtr( ", " );
- else
- rOutStm << endl;
- }
-}
-
bool SvMetaTypeEnum::ReadSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm )
{
@@ -1940,15 +1258,6 @@ bool SvMetaTypeEnum::ReadSvIdl( SvIdlDataBase & rBase,
return false;
}
-void SvMetaTypeEnum::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
- sal_uInt16 nTab )
-{
- WriteHeaderSvIdl( rBase, rOutStm, nTab );
- rOutStm << endl;
- SvMetaName::WriteSvIdl( rBase, rOutStm, nTab );
- rOutStm << endl;
-}
-
void SvMetaTypeEnum::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
sal_uInt16 nTab,
WriteType nT, WriteAttribute nA )
@@ -1981,22 +1290,12 @@ void SvMetaTypeEnum::WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm,
rOutStm << endl;
}
-SV_IMPL_META_FACTORY1( SvMetaTypevoid, SvMetaType );
+TYPEINIT1( SvMetaTypevoid, SvMetaType );
SvMetaTypevoid::SvMetaTypevoid()
: SvMetaType( "void", "SbxVOID", "void", 'v', "void", "", "" )
{
}
-void SvMetaTypevoid::Load( SvPersistStream & rStm )
-{
- SvMetaType::Load( rStm );
-}
-
-void SvMetaTypevoid::Save( SvPersistStream & rStm )
-{
- SvMetaType::Save( rStm );
-}
-
OString SvMetaAttribute::Compare( SvMetaAttribute* pAttr )
{
OStringBuffer aStr;
@@ -2060,12 +1359,4 @@ OString SvMetaAttribute::Compare( SvMetaAttribute* pAttr )
return aStr.makeStringAndClear();
}
-void SvMetaAttribute::WriteCSV( SvIdlDataBase&, SvStream& rStrm )
-{
- rStrm.WriteCharPtr( GetType()->GetSvName().getStr() ).WriteChar( ' ' );
- rStrm.WriteCharPtr( GetName().getString().getStr() ).WriteChar( ' ' );
- rStrm.WriteCharPtr( GetSlotId().getString().getStr() );
-}
-
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */