xref: /aoo41x/main/idl/source/objects/basobj.cxx (revision 79aad27f)
1*724893d4SAndrew Rist /**************************************************************
2*724893d4SAndrew Rist  *
3*724893d4SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*724893d4SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*724893d4SAndrew Rist  * distributed with this work for additional information
6*724893d4SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*724893d4SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*724893d4SAndrew Rist  * "License"); you may not use this file except in compliance
9*724893d4SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*724893d4SAndrew Rist  *
11*724893d4SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*724893d4SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*724893d4SAndrew Rist  * software distributed under the License is distributed on an
15*724893d4SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*724893d4SAndrew Rist  * KIND, either express or implied.  See the License for the
17*724893d4SAndrew Rist  * specific language governing permissions and limitations
18*724893d4SAndrew Rist  * under the License.
19*724893d4SAndrew Rist  *
20*724893d4SAndrew Rist  *************************************************************/
21*724893d4SAndrew Rist 
22*724893d4SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_idl.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <ctype.h>
28cdf0e10cSrcweir #include <stdio.h>
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #include <tools/debug.hxx>
31cdf0e10cSrcweir 
32cdf0e10cSrcweir #include <attrib.hxx>
33cdf0e10cSrcweir #include <basobj.hxx>
34cdf0e10cSrcweir #include <module.hxx>
35cdf0e10cSrcweir #include <globals.hxx>
36cdf0e10cSrcweir #include <database.hxx>
37cdf0e10cSrcweir 
38cdf0e10cSrcweir /****************** SvMetaObject *****************************************/
SV_IMPL_META_FACTORY1(SvMetaObject,SvRttiBase)39cdf0e10cSrcweir SV_IMPL_META_FACTORY1( SvMetaObject, SvRttiBase )
40cdf0e10cSrcweir /*************************************************************************
41cdf0e10cSrcweir |*    SvMetaObject::SvMetaObject()
42cdf0e10cSrcweir |*
43cdf0e10cSrcweir |*    Beschreibung
44cdf0e10cSrcweir *************************************************************************/
45cdf0e10cSrcweir SvMetaObject::SvMetaObject()
46cdf0e10cSrcweir {
47cdf0e10cSrcweir }
48cdf0e10cSrcweir 
Load(SvPersistStream &)49cdf0e10cSrcweir void SvMetaObject::Load( SvPersistStream & )
50cdf0e10cSrcweir {
51cdf0e10cSrcweir }
52cdf0e10cSrcweir 
Save(SvPersistStream &)53cdf0e10cSrcweir void SvMetaObject::Save( SvPersistStream & )
54cdf0e10cSrcweir {
55cdf0e10cSrcweir }
56cdf0e10cSrcweir 
57cdf0e10cSrcweir /*************************************************************************
58cdf0e10cSrcweir |*    SvMetaObject::WriteTab()
59cdf0e10cSrcweir |*
60cdf0e10cSrcweir |*    Beschreibung
61cdf0e10cSrcweir *************************************************************************/
62cdf0e10cSrcweir #ifdef IDL_COMPILER
WriteTab(SvStream & rOutStm,sal_uInt16 nTab)63cdf0e10cSrcweir void SvMetaObject::WriteTab( SvStream & rOutStm, sal_uInt16 nTab )
64cdf0e10cSrcweir {
65cdf0e10cSrcweir     while( nTab-- )
66cdf0e10cSrcweir         rOutStm << "    ";
67cdf0e10cSrcweir //        rOutStm << '\t';
68cdf0e10cSrcweir }
69cdf0e10cSrcweir 
70cdf0e10cSrcweir /*************************************************************************
71cdf0e10cSrcweir |*    SvMetaObject::WriteStart()
72cdf0e10cSrcweir |*
73cdf0e10cSrcweir |*    Beschreibung
74cdf0e10cSrcweir *************************************************************************/
WriteStars(SvStream & rOutStm)75cdf0e10cSrcweir void SvMetaObject::WriteStars( SvStream & rOutStm )
76cdf0e10cSrcweir {
77cdf0e10cSrcweir     rOutStm << '/';
78cdf0e10cSrcweir 	for( int i = 6; i > 0; i-- )
79cdf0e10cSrcweir         rOutStm << "**********";
80cdf0e10cSrcweir     rOutStm << '/' << endl;
81cdf0e10cSrcweir }
82cdf0e10cSrcweir 
83cdf0e10cSrcweir /*************************************************************************
84cdf0e10cSrcweir |*    SvMetaObject::TestAndSeekSpaceOnly()
85cdf0e10cSrcweir |*
86cdf0e10cSrcweir |*    Beschreibung
87cdf0e10cSrcweir *************************************************************************/
TestAndSeekSpaceOnly(SvStream & rOutStm,sal_uLong nBegPos)88cdf0e10cSrcweir sal_Bool SvMetaObject::TestAndSeekSpaceOnly( SvStream & rOutStm, sal_uLong nBegPos )
89cdf0e10cSrcweir {
90cdf0e10cSrcweir     // keine leeren Klammern schreiben
91cdf0e10cSrcweir     sal_uLong nPos = rOutStm.Tell();
92cdf0e10cSrcweir     rOutStm.Seek( nBegPos );
93cdf0e10cSrcweir     sal_Bool bOnlySpace = sal_True;
94cdf0e10cSrcweir     while( bOnlySpace && rOutStm.Tell() < nPos )
95cdf0e10cSrcweir     {
96cdf0e10cSrcweir         char c;
97cdf0e10cSrcweir         rOutStm >> c;
98cdf0e10cSrcweir         if( !isspace( c ) )
99cdf0e10cSrcweir             bOnlySpace = sal_False;
100cdf0e10cSrcweir     }
101cdf0e10cSrcweir     if( bOnlySpace )
102cdf0e10cSrcweir         // nichts geschrieben
103cdf0e10cSrcweir         rOutStm.Seek( nBegPos );
104cdf0e10cSrcweir     else
105cdf0e10cSrcweir         rOutStm.Seek( nPos );
106cdf0e10cSrcweir 	return bOnlySpace;
107cdf0e10cSrcweir }
108cdf0e10cSrcweir 
109cdf0e10cSrcweir /*************************************************************************
110cdf0e10cSrcweir |*    SvMetaObject::Back2Delemitter()
111cdf0e10cSrcweir |*
112cdf0e10cSrcweir |*    Beschreibung
113cdf0e10cSrcweir *************************************************************************/
Back2Delemitter(SvStream & rOutStm)114cdf0e10cSrcweir void SvMetaObject::Back2Delemitter( SvStream & rOutStm )
115cdf0e10cSrcweir {
116cdf0e10cSrcweir     // keine leeren Klammern schreiben
117cdf0e10cSrcweir     sal_uLong nPos = rOutStm.Tell();
118cdf0e10cSrcweir     rOutStm.SeekRel( -1 );
119cdf0e10cSrcweir 	char c = 0;
120cdf0e10cSrcweir 	rOutStm >> c;
121cdf0e10cSrcweir 
122cdf0e10cSrcweir     while( isspace( c ) && rOutStm.Tell() != 1 )
123cdf0e10cSrcweir     {
124cdf0e10cSrcweir 	    rOutStm.SeekRel( -2 );
125cdf0e10cSrcweir 		rOutStm >> c;
126cdf0e10cSrcweir     }
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 	if( c == ';' || c == ',' )
129cdf0e10cSrcweir 	    rOutStm.SeekRel( -1 );
130cdf0e10cSrcweir 	else
131cdf0e10cSrcweir     	rOutStm.Seek( nPos );
132cdf0e10cSrcweir }
133cdf0e10cSrcweir 
134cdf0e10cSrcweir /*************************************************************************
135cdf0e10cSrcweir |*    SvMetaObject::ReadSvIdl()
136cdf0e10cSrcweir |*
137cdf0e10cSrcweir |*    Beschreibung
138cdf0e10cSrcweir *************************************************************************/
ReadSvIdl(SvIdlDataBase &,SvTokenStream &)139cdf0e10cSrcweir sal_Bool SvMetaObject::ReadSvIdl( SvIdlDataBase &, SvTokenStream & )
140cdf0e10cSrcweir {
141cdf0e10cSrcweir     return sal_False;
142cdf0e10cSrcweir }
143cdf0e10cSrcweir 
144cdf0e10cSrcweir /*************************************************************************
145cdf0e10cSrcweir |*    SvMetaObject::WriteSvIdl()
146cdf0e10cSrcweir |*
147cdf0e10cSrcweir |*    Beschreibung
148cdf0e10cSrcweir *************************************************************************/
WriteSvIdl(SvIdlDataBase &,SvStream &,sal_uInt16)149cdf0e10cSrcweir void SvMetaObject::WriteSvIdl( SvIdlDataBase &, SvStream &, sal_uInt16 /*nTab */ )
150cdf0e10cSrcweir {
151cdf0e10cSrcweir }
152cdf0e10cSrcweir 
153cdf0e10cSrcweir /*************************************************************************
154cdf0e10cSrcweir |*    SvMetaObject::Write()
155cdf0e10cSrcweir |*
156cdf0e10cSrcweir |*    Beschreibung
157cdf0e10cSrcweir *************************************************************************/
Write(SvIdlDataBase &,SvStream &,sal_uInt16,WriteType,WriteAttribute)158cdf0e10cSrcweir void SvMetaObject::Write( SvIdlDataBase &, SvStream &, sal_uInt16 /*nTab */,
159cdf0e10cSrcweir 		 					WriteType, WriteAttribute )
160cdf0e10cSrcweir {
161cdf0e10cSrcweir }
162cdf0e10cSrcweir 
163cdf0e10cSrcweir /*************************************************************************
164cdf0e10cSrcweir |*    SvMetaObject::WriteCxx()
165cdf0e10cSrcweir |*
166cdf0e10cSrcweir |*    Beschreibung
167cdf0e10cSrcweir *************************************************************************/
WriteCxx(SvIdlDataBase &,SvStream &,sal_uInt16)168cdf0e10cSrcweir void SvMetaObject::WriteCxx( SvIdlDataBase &, SvStream &, sal_uInt16 /*nTab */ )
169cdf0e10cSrcweir {
170cdf0e10cSrcweir }
171cdf0e10cSrcweir 
172cdf0e10cSrcweir /*************************************************************************
173cdf0e10cSrcweir |*    SvMetaObject::WriteHxx()
174cdf0e10cSrcweir |*
175cdf0e10cSrcweir |*    Beschreibung
176cdf0e10cSrcweir *************************************************************************/
WriteHxx(SvIdlDataBase &,SvStream &,sal_uInt16)177cdf0e10cSrcweir void SvMetaObject::WriteHxx( SvIdlDataBase &, SvStream &, sal_uInt16 /*nTab */ )
178cdf0e10cSrcweir {
179cdf0e10cSrcweir }
180cdf0e10cSrcweir 
181cdf0e10cSrcweir #endif
182cdf0e10cSrcweir 
183cdf0e10cSrcweir /****************** SvMetaName *****************************************/
184cdf0e10cSrcweir SV_IMPL_META_FACTORY1( SvMetaName, SvMetaObject );
185cdf0e10cSrcweir /*************************************************************************
186cdf0e10cSrcweir |*    SvMetaName::SvMetaName()
187cdf0e10cSrcweir |*
188cdf0e10cSrcweir |*    Beschreibung
189cdf0e10cSrcweir *************************************************************************/
SvMetaName()190cdf0e10cSrcweir SvMetaName::SvMetaName()
191cdf0e10cSrcweir {
192cdf0e10cSrcweir }
193cdf0e10cSrcweir 
Load(SvPersistStream & rStm)194cdf0e10cSrcweir void SvMetaName::Load( SvPersistStream & rStm )
195cdf0e10cSrcweir {
196cdf0e10cSrcweir     SvMetaObject::Load( rStm );
197cdf0e10cSrcweir     sal_uInt8 nMask;
198cdf0e10cSrcweir     rStm >> nMask;
199cdf0e10cSrcweir 
200cdf0e10cSrcweir     if( nMask >= 0x20 )
201cdf0e10cSrcweir     {
202cdf0e10cSrcweir         rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
203cdf0e10cSrcweir         DBG_ERROR( "wrong format" );
204cdf0e10cSrcweir         return;
205cdf0e10cSrcweir     }
206cdf0e10cSrcweir     if( nMask & 0x01 )	rStm >> aName;
207cdf0e10cSrcweir     if( nMask & 0x02 )  rStm >> aHelpContext;
208cdf0e10cSrcweir     if( nMask & 0x04 )	rStm >> aHelpText;
209cdf0e10cSrcweir     if( nMask & 0x08 )	rStm >> aConfigName;
210cdf0e10cSrcweir     if( nMask & 0x10 )	rStm >> aDescription;
211cdf0e10cSrcweir }
212cdf0e10cSrcweir 
Save(SvPersistStream & rStm)213cdf0e10cSrcweir void SvMetaName::Save( SvPersistStream & rStm )
214cdf0e10cSrcweir {
215cdf0e10cSrcweir     SvMetaObject::Save( rStm );
216cdf0e10cSrcweir     sal_uInt8 nMask = 0;
217cdf0e10cSrcweir     if( aName.IsSet() )			nMask |= 0x01;
218cdf0e10cSrcweir     if( aHelpContext.IsSet() )  nMask |= 0x02;
219cdf0e10cSrcweir     if( aHelpText.IsSet() )   	nMask |= 0x04;
220cdf0e10cSrcweir     if( aConfigName.IsSet() ) 	nMask |= 0x08;
221cdf0e10cSrcweir     if( aDescription.IsSet() ) 	nMask |= 0x10;
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     rStm << nMask;
224cdf0e10cSrcweir     if( nMask & 0x01 ) rStm << aName;
225cdf0e10cSrcweir     if( nMask & 0x02 ) rStm << aHelpContext;
226cdf0e10cSrcweir     if( nMask & 0x04 ) rStm << aHelpText;
227cdf0e10cSrcweir     if( nMask & 0x08 ) rStm << aConfigName;
228cdf0e10cSrcweir     if( nMask & 0x10 ) rStm << aDescription;
229cdf0e10cSrcweir }
230cdf0e10cSrcweir 
231cdf0e10cSrcweir /*************************************************************************
232cdf0e10cSrcweir |*
233cdf0e10cSrcweir |*
234cdf0e10cSrcweir |*    Beschreibung
235cdf0e10cSrcweir *************************************************************************/
SetName(const ByteString & rName,SvIdlDataBase *)236cdf0e10cSrcweir sal_Bool SvMetaName::SetName( const ByteString & rName, SvIdlDataBase * )
237cdf0e10cSrcweir {
238cdf0e10cSrcweir     aName = rName;
239cdf0e10cSrcweir     return sal_True;
240cdf0e10cSrcweir }
241cdf0e10cSrcweir 
242cdf0e10cSrcweir #ifdef IDL_COMPILER
243cdf0e10cSrcweir /*************************************************************************
244cdf0e10cSrcweir |*    SvMetaName::ReadNameSvIdl()
245cdf0e10cSrcweir |*
246cdf0e10cSrcweir |*    Beschreibung
247cdf0e10cSrcweir *************************************************************************/
ReadNameSvIdl(SvIdlDataBase & rBase,SvTokenStream & rInStm)248cdf0e10cSrcweir sal_Bool SvMetaName::ReadNameSvIdl( SvIdlDataBase & rBase,
249cdf0e10cSrcweir                                 SvTokenStream & rInStm )
250cdf0e10cSrcweir {
251cdf0e10cSrcweir     sal_uInt32 nTokPos = rInStm.Tell();
252cdf0e10cSrcweir     SvToken * pTok = rInStm.GetToken_Next();
253cdf0e10cSrcweir 
254cdf0e10cSrcweir     // Modulnamen lesen
255cdf0e10cSrcweir     if( pTok->IsIdentifier() )
256cdf0e10cSrcweir         if( SetName( pTok->GetString(), &rBase ) )
257cdf0e10cSrcweir             return sal_True;
258cdf0e10cSrcweir 
259cdf0e10cSrcweir     rInStm.Seek( nTokPos );
260cdf0e10cSrcweir     return sal_False;
261cdf0e10cSrcweir }
262cdf0e10cSrcweir 
263cdf0e10cSrcweir /*************************************************************************
264cdf0e10cSrcweir |*    SvMetaName::ReadSvIdl()
265cdf0e10cSrcweir |*
266cdf0e10cSrcweir |*    Beschreibung
267cdf0e10cSrcweir *************************************************************************/
ReadAttributesSvIdl(SvIdlDataBase & rBase,SvTokenStream & rInStm)268cdf0e10cSrcweir void SvMetaName::ReadAttributesSvIdl( SvIdlDataBase & rBase,
269cdf0e10cSrcweir                                       SvTokenStream & rInStm )
270cdf0e10cSrcweir {
271cdf0e10cSrcweir     sal_uInt32 nTokPos = rInStm.Tell();
272cdf0e10cSrcweir     if( aName.ReadSvIdl( SvHash_Name(), rInStm ) )
273cdf0e10cSrcweir     {
274cdf0e10cSrcweir         if( !SetName( aName, &rBase ) )
275cdf0e10cSrcweir             rInStm.Seek( nTokPos );
276cdf0e10cSrcweir     }
277cdf0e10cSrcweir     aHelpContext.ReadSvIdl( rBase, SvHash_HelpContext(), rInStm );
278cdf0e10cSrcweir     aHelpText.ReadSvIdl( rBase, rInStm );
279cdf0e10cSrcweir     aConfigName.ReadSvIdl( SvHash_ConfigName(), rInStm );
280cdf0e10cSrcweir     aDescription.ReadSvIdl( SvHash_Description(), rInStm );
281cdf0e10cSrcweir /*
282cdf0e10cSrcweir     aHelpContext.ReadSvIdl( GetModule()->GetInfo()->GetHelpContextContainer(),
283cdf0e10cSrcweir                           rInStm );
284cdf0e10cSrcweir */
285cdf0e10cSrcweir }
286cdf0e10cSrcweir 
287cdf0e10cSrcweir /*************************************************************************
288cdf0e10cSrcweir |*    SvMetaName::DoReadContextSvIdl()
289cdf0e10cSrcweir |*
290cdf0e10cSrcweir |*    Beschreibung
291cdf0e10cSrcweir *************************************************************************/
DoReadContextSvIdl(SvIdlDataBase & rBase,SvTokenStream & rInStm,char cDel)292cdf0e10cSrcweir void SvMetaName::DoReadContextSvIdl( SvIdlDataBase & rBase,
293cdf0e10cSrcweir                                    SvTokenStream & rInStm, char cDel )
294cdf0e10cSrcweir {
295cdf0e10cSrcweir     sal_uInt32 nBeginPos = 0; // kann mit Tell nicht vorkommen
296cdf0e10cSrcweir     while( nBeginPos != rInStm.Tell() )
297cdf0e10cSrcweir     {
298cdf0e10cSrcweir         nBeginPos = rInStm.Tell();
299cdf0e10cSrcweir         ReadContextSvIdl( rBase, rInStm );
300cdf0e10cSrcweir 		if( cDel == '\0' )
301cdf0e10cSrcweir         	rInStm.ReadDelemiter();
302cdf0e10cSrcweir 		else
303cdf0e10cSrcweir         	rInStm.Read( cDel );
304cdf0e10cSrcweir     }
305cdf0e10cSrcweir }
306cdf0e10cSrcweir 
307cdf0e10cSrcweir /*************************************************************************
308cdf0e10cSrcweir |*    SvMetaName::ReadSvIdl()
309cdf0e10cSrcweir |*
310cdf0e10cSrcweir |*    Beschreibung
311cdf0e10cSrcweir *************************************************************************/
ReadContextSvIdl(SvIdlDataBase &,SvTokenStream &)312cdf0e10cSrcweir void SvMetaName::ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & )
313cdf0e10cSrcweir {
314cdf0e10cSrcweir }
315cdf0e10cSrcweir 
316cdf0e10cSrcweir /*************************************************************************
317cdf0e10cSrcweir |*    SvMetaName::Test()
318cdf0e10cSrcweir |*
319cdf0e10cSrcweir |*    Beschreibung
320cdf0e10cSrcweir *************************************************************************/
Test(SvIdlDataBase &,SvTokenStream &)321cdf0e10cSrcweir sal_Bool SvMetaName::Test( SvIdlDataBase &, SvTokenStream & )
322cdf0e10cSrcweir {
323cdf0e10cSrcweir     return sal_True;
324cdf0e10cSrcweir }
325cdf0e10cSrcweir 
326cdf0e10cSrcweir /*************************************************************************
327cdf0e10cSrcweir |*    SvMetaName::WriteContextSvIdl()
328cdf0e10cSrcweir |*
329cdf0e10cSrcweir |*    Beschreibung
330cdf0e10cSrcweir *************************************************************************/
WriteContextSvIdl(SvIdlDataBase &,SvStream &,sal_uInt16)331cdf0e10cSrcweir void SvMetaName::WriteContextSvIdl( SvIdlDataBase &, SvStream &, sal_uInt16 )
332cdf0e10cSrcweir {
333cdf0e10cSrcweir }
334cdf0e10cSrcweir 
335cdf0e10cSrcweir /*************************************************************************
336cdf0e10cSrcweir |*    SvMetaName::WriteDescription()
337cdf0e10cSrcweir |*
338cdf0e10cSrcweir |*    Beschreibung
339cdf0e10cSrcweir *************************************************************************/
WriteDescription(SvStream & rOutStm)340cdf0e10cSrcweir void SvMetaName::WriteDescription( SvStream & rOutStm )
341cdf0e10cSrcweir {
342cdf0e10cSrcweir 	rOutStm << "<DESCRIPTION>" << endl;
343cdf0e10cSrcweir 
344cdf0e10cSrcweir 	ByteString aDesc( GetDescription() );
345cdf0e10cSrcweir 	sal_uInt16 nPos = aDesc.Search( '\n' );
346cdf0e10cSrcweir 	while ( nPos != STRING_NOTFOUND )
347cdf0e10cSrcweir 	{
348cdf0e10cSrcweir         rOutStm << aDesc.Copy( 0, nPos ).GetBuffer() << endl;
349cdf0e10cSrcweir         aDesc.Erase(0,nPos+1);
350cdf0e10cSrcweir 		nPos = aDesc.Search( '\n' );
351cdf0e10cSrcweir 	}
352cdf0e10cSrcweir 
353cdf0e10cSrcweir     rOutStm << aDesc.GetBuffer() << endl << "</DESCRIPTION>" << endl;
354cdf0e10cSrcweir }
355cdf0e10cSrcweir 
356cdf0e10cSrcweir /*************************************************************************
357cdf0e10cSrcweir |*    SvMetaName::WriteAttributesIdl()
358cdf0e10cSrcweir |*
359cdf0e10cSrcweir |*    Beschreibung
360cdf0e10cSrcweir *************************************************************************/
WriteAttributesSvIdl(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab)361cdf0e10cSrcweir void SvMetaName::WriteAttributesSvIdl( SvIdlDataBase & rBase,
362cdf0e10cSrcweir                                        SvStream & rOutStm,
363cdf0e10cSrcweir                                        sal_uInt16 nTab )
364cdf0e10cSrcweir {
365cdf0e10cSrcweir     if( aHelpContext.IsSet() || aHelpText.IsSet() || aConfigName.IsSet() )
366cdf0e10cSrcweir 	{
367cdf0e10cSrcweir     	WriteTab( rOutStm, nTab );
368cdf0e10cSrcweir     	rOutStm << "// class SvMetaName" << endl;
369cdf0e10cSrcweir 	}
370cdf0e10cSrcweir     if( aHelpContext.IsSet() )
371cdf0e10cSrcweir     {
372cdf0e10cSrcweir         WriteTab( rOutStm, nTab );
373cdf0e10cSrcweir         aHelpContext.WriteSvIdl( SvHash_HelpContext(), rOutStm, nTab );
374cdf0e10cSrcweir         rOutStm << ';' << endl;
375cdf0e10cSrcweir     }
376cdf0e10cSrcweir     if( aHelpText.IsSet() )
377cdf0e10cSrcweir     {
378cdf0e10cSrcweir         WriteTab( rOutStm, nTab );
379cdf0e10cSrcweir         aHelpText.WriteSvIdl( rBase, rOutStm, nTab );
380cdf0e10cSrcweir         rOutStm << ';' << endl;
381cdf0e10cSrcweir     }
382cdf0e10cSrcweir     if( aConfigName.IsSet() )
383cdf0e10cSrcweir     {
384cdf0e10cSrcweir         WriteTab( rOutStm, nTab );
385cdf0e10cSrcweir         aConfigName.WriteSvIdl( SvHash_ConfigName(), rOutStm, nTab );
386cdf0e10cSrcweir         rOutStm << ';' << endl;
387cdf0e10cSrcweir     }
388cdf0e10cSrcweir }
389cdf0e10cSrcweir 
390cdf0e10cSrcweir /*************************************************************************
391cdf0e10cSrcweir |*    SvMetaName::ReadSvIdl()
392cdf0e10cSrcweir |*
393cdf0e10cSrcweir |*    Beschreibung
394cdf0e10cSrcweir *************************************************************************/
ReadSvIdl(SvIdlDataBase & rBase,SvTokenStream & rInStm)395cdf0e10cSrcweir sal_Bool SvMetaName::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
396cdf0e10cSrcweir {
397cdf0e10cSrcweir     sal_uInt32 nTokPos = rInStm.Tell();
398cdf0e10cSrcweir     sal_Bool bOk = sal_True;
399cdf0e10cSrcweir     if( rInStm.Read( '[' ) )
400cdf0e10cSrcweir     {
401cdf0e10cSrcweir         sal_uInt32 nBeginPos = 0; // kann mit Tell nicht vorkommen
402cdf0e10cSrcweir         while( nBeginPos != rInStm.Tell() )
403cdf0e10cSrcweir         {
404cdf0e10cSrcweir             nBeginPos = rInStm.Tell();
405cdf0e10cSrcweir             ReadAttributesSvIdl( rBase, rInStm );
406cdf0e10cSrcweir             rInStm.ReadDelemiter();
407cdf0e10cSrcweir         }
408cdf0e10cSrcweir         bOk = rInStm.Read( ']' );
409cdf0e10cSrcweir     }
410cdf0e10cSrcweir 
411cdf0e10cSrcweir     if( bOk )
412cdf0e10cSrcweir     {
413cdf0e10cSrcweir         if( rInStm.Read( '{' ) )
414cdf0e10cSrcweir         {
415cdf0e10cSrcweir 			DoReadContextSvIdl( rBase, rInStm );
416cdf0e10cSrcweir             bOk = rInStm.Read( '}' );
417cdf0e10cSrcweir         }
418cdf0e10cSrcweir     }
419cdf0e10cSrcweir 
420cdf0e10cSrcweir     if( !bOk )
421cdf0e10cSrcweir         rInStm.Seek( nTokPos );
422cdf0e10cSrcweir     return bOk;
423cdf0e10cSrcweir }
424cdf0e10cSrcweir 
425cdf0e10cSrcweir /*************************************************************************
426cdf0e10cSrcweir |*    SvMetaName::WriteSvIdl()
427cdf0e10cSrcweir |*
428cdf0e10cSrcweir |*    Beschreibung
429cdf0e10cSrcweir *************************************************************************/
WriteSvIdl(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab)430cdf0e10cSrcweir void SvMetaName::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
431cdf0e10cSrcweir                              sal_uInt16 nTab )
432cdf0e10cSrcweir {
433cdf0e10cSrcweir     sal_uLong nBeginPos = rOutStm.Tell();
434cdf0e10cSrcweir     WriteTab( rOutStm, nTab );
435cdf0e10cSrcweir     rOutStm << '[' << endl;
436cdf0e10cSrcweir     sal_uLong nOldPos = rOutStm.Tell();
437cdf0e10cSrcweir     WriteAttributesSvIdl( rBase, rOutStm, nTab +1 );
438cdf0e10cSrcweir 
439cdf0e10cSrcweir     // keine leeren Klammern schreiben
440cdf0e10cSrcweir 	if( TestAndSeekSpaceOnly( rOutStm, nOldPos ) )
441cdf0e10cSrcweir         // nichts geschrieben
442cdf0e10cSrcweir         rOutStm.Seek( nBeginPos );
443cdf0e10cSrcweir     else
444cdf0e10cSrcweir     {
445cdf0e10cSrcweir         WriteTab( rOutStm, nTab );
446cdf0e10cSrcweir         rOutStm << ']';
447cdf0e10cSrcweir 	    nBeginPos = rOutStm.Tell();
448cdf0e10cSrcweir 	  	rOutStm << endl;
449cdf0e10cSrcweir     }
450cdf0e10cSrcweir 
451cdf0e10cSrcweir     WriteTab( rOutStm, nTab );
452cdf0e10cSrcweir     rOutStm << '{' << endl;
453cdf0e10cSrcweir     nOldPos = rOutStm.Tell();
454cdf0e10cSrcweir     WriteContextSvIdl( rBase, rOutStm, nTab +1 );
455cdf0e10cSrcweir 
456cdf0e10cSrcweir     // keine leeren Klammern schreiben
457cdf0e10cSrcweir 	if( TestAndSeekSpaceOnly( rOutStm, nOldPos ) )
458cdf0e10cSrcweir         // nichts geschrieben
459cdf0e10cSrcweir         rOutStm.Seek( nBeginPos );
460cdf0e10cSrcweir     else
461cdf0e10cSrcweir     {
462cdf0e10cSrcweir         WriteTab( rOutStm, nTab );
463cdf0e10cSrcweir         rOutStm << '}';
464cdf0e10cSrcweir     }
465cdf0e10cSrcweir }
466cdf0e10cSrcweir 
467cdf0e10cSrcweir /*************************************************************************
468cdf0e10cSrcweir |*    SvMetaName::Write()
469cdf0e10cSrcweir |*
470cdf0e10cSrcweir |*    Beschreibung
471cdf0e10cSrcweir *************************************************************************/
Write(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab,WriteType nT,WriteAttribute nA)472cdf0e10cSrcweir void SvMetaName::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
473cdf0e10cSrcweir                        	sal_uInt16 nTab,
474cdf0e10cSrcweir 		 				WriteType nT, WriteAttribute nA )
475cdf0e10cSrcweir {
476cdf0e10cSrcweir     sal_uLong nBeginPos = rOutStm.Tell();
477cdf0e10cSrcweir     WriteTab( rOutStm, nTab );
478cdf0e10cSrcweir     rOutStm << '[' << endl;
479cdf0e10cSrcweir     sal_uLong nOldPos = rOutStm.Tell();
480cdf0e10cSrcweir     WriteAttributes( rBase, rOutStm, nTab +1, nT, nA );
481cdf0e10cSrcweir 
482cdf0e10cSrcweir     // keine leeren Klammern schreiben
483cdf0e10cSrcweir     sal_uLong nPos = rOutStm.Tell();
484cdf0e10cSrcweir     rOutStm.Seek( nOldPos );
485cdf0e10cSrcweir     sal_Bool bOnlySpace = sal_True;
486cdf0e10cSrcweir     while( bOnlySpace && rOutStm.Tell() < nPos )
487cdf0e10cSrcweir     {
488cdf0e10cSrcweir         char c;
489cdf0e10cSrcweir         rOutStm >> c;
490cdf0e10cSrcweir         if( !isspace( c ) )
491cdf0e10cSrcweir             bOnlySpace = sal_False;
492cdf0e10cSrcweir     }
493cdf0e10cSrcweir     if( bOnlySpace )
494cdf0e10cSrcweir         // nichts geschrieben
495cdf0e10cSrcweir         rOutStm.Seek( nBeginPos );
496cdf0e10cSrcweir     else
497cdf0e10cSrcweir     {
498cdf0e10cSrcweir         rOutStm.Seek( nPos );
499cdf0e10cSrcweir         WriteTab( rOutStm, nTab );
500cdf0e10cSrcweir         rOutStm << ']' << endl;
501cdf0e10cSrcweir     }
502cdf0e10cSrcweir }
503cdf0e10cSrcweir 
504cdf0e10cSrcweir /*************************************************************************
505cdf0e10cSrcweir |*    SvMetaName::WriteAttributes()
506cdf0e10cSrcweir |*
507cdf0e10cSrcweir |*    Beschreibung
508cdf0e10cSrcweir *************************************************************************/
WriteAttributes(SvIdlDataBase &,SvStream & rOutStm,sal_uInt16 nTab,WriteType,WriteAttribute)509cdf0e10cSrcweir void SvMetaName::WriteAttributes( SvIdlDataBase &, SvStream & rOutStm,
510cdf0e10cSrcweir                             	sal_uInt16 nTab,
511cdf0e10cSrcweir 		 						WriteType, WriteAttribute )
512cdf0e10cSrcweir {
513cdf0e10cSrcweir     if( GetHelpText().IsSet() || GetHelpContext().IsSet() )
514cdf0e10cSrcweir 	{
515cdf0e10cSrcweir 		WriteTab( rOutStm, nTab );
516cdf0e10cSrcweir 		rOutStm << "// class SvMetaName" << endl;
517cdf0e10cSrcweir     }
518cdf0e10cSrcweir 	if( GetHelpText().IsSet() )
519cdf0e10cSrcweir 	{
520cdf0e10cSrcweir 		WriteTab( rOutStm, nTab );
521cdf0e10cSrcweir         rOutStm << "helpstring(\"" << GetHelpText().GetBuffer() << "\")," << endl;
522cdf0e10cSrcweir 	}
523cdf0e10cSrcweir     if( GetHelpContext().IsSet() )
524cdf0e10cSrcweir 	{
525cdf0e10cSrcweir 		WriteTab( rOutStm, nTab );
526cdf0e10cSrcweir         rOutStm << "helpcontext("
527cdf0e10cSrcweir                 << ByteString::CreateFromInt64(
528cdf0e10cSrcweir                     GetHelpContext().GetValue() ).GetBuffer()
529cdf0e10cSrcweir                 << ")," << endl;
530cdf0e10cSrcweir 	}
531cdf0e10cSrcweir }
532cdf0e10cSrcweir 
533cdf0e10cSrcweir /*************************************************************************
534cdf0e10cSrcweir |*    SvMetaName::WriteContext()
535cdf0e10cSrcweir |*
536cdf0e10cSrcweir |*    Beschreibung
537cdf0e10cSrcweir *************************************************************************/
WriteContext(SvIdlDataBase &,SvStream &,sal_uInt16,WriteType,WriteAttribute)538cdf0e10cSrcweir void SvMetaName::WriteContext( SvIdlDataBase &, SvStream &,
539cdf0e10cSrcweir                             	sal_uInt16,
540cdf0e10cSrcweir 		 						WriteType, WriteAttribute )
541cdf0e10cSrcweir {
542cdf0e10cSrcweir }
543cdf0e10cSrcweir #endif // IDL_COMPILER
544cdf0e10cSrcweir 
545cdf0e10cSrcweir /****************** SvMetaReference *****************************************/
546cdf0e10cSrcweir SV_IMPL_META_FACTORY1( SvMetaReference, SvMetaName );
547cdf0e10cSrcweir 
548cdf0e10cSrcweir /*************************************************************************
549cdf0e10cSrcweir |*    SvMetaReference::SvMetaReference()
550cdf0e10cSrcweir |*
551cdf0e10cSrcweir |*    Beschreibung
552cdf0e10cSrcweir *************************************************************************/
SvMetaReference()553cdf0e10cSrcweir SvMetaReference::SvMetaReference()
554cdf0e10cSrcweir {
555cdf0e10cSrcweir }
556cdf0e10cSrcweir 
Load(SvPersistStream & rStm)557cdf0e10cSrcweir void SvMetaReference::Load( SvPersistStream & rStm )
558cdf0e10cSrcweir {
559cdf0e10cSrcweir     SvMetaName::Load( rStm );
560cdf0e10cSrcweir 
561cdf0e10cSrcweir     sal_uInt8 nMask;
562cdf0e10cSrcweir     rStm >> nMask;
563cdf0e10cSrcweir     if( nMask >= 0x2 )
564cdf0e10cSrcweir     {
565cdf0e10cSrcweir         rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
566cdf0e10cSrcweir         DBG_ERROR( "wrong format" );
567cdf0e10cSrcweir         return;
568cdf0e10cSrcweir     }
569cdf0e10cSrcweir     if( nMask & 0x01 )
570cdf0e10cSrcweir     {
571cdf0e10cSrcweir         SvMetaReference * pRef;
572cdf0e10cSrcweir         rStm >> pRef;
573cdf0e10cSrcweir         aRef = pRef;
574cdf0e10cSrcweir     }
575cdf0e10cSrcweir }
576cdf0e10cSrcweir 
Save(SvPersistStream & rStm)577cdf0e10cSrcweir void SvMetaReference::Save( SvPersistStream & rStm )
578cdf0e10cSrcweir {
579cdf0e10cSrcweir     SvMetaName::Save( rStm );
580cdf0e10cSrcweir 
581cdf0e10cSrcweir     // Maske erstellen
582cdf0e10cSrcweir     sal_uInt8 nMask = 0;
583cdf0e10cSrcweir     if( aRef.Is() )
584cdf0e10cSrcweir         nMask |= 0x01;
585cdf0e10cSrcweir 
586cdf0e10cSrcweir     // Daten schreiben
587cdf0e10cSrcweir     rStm << nMask;
588cdf0e10cSrcweir     if( nMask & 0x01 ) rStm << aRef;
589cdf0e10cSrcweir }
590cdf0e10cSrcweir 
591cdf0e10cSrcweir /**************************************************************************/
592cdf0e10cSrcweir /****************** SvMetaExtern ******************************************/
593cdf0e10cSrcweir SV_IMPL_META_FACTORY1( SvMetaExtern, SvMetaReference );
594cdf0e10cSrcweir 
595cdf0e10cSrcweir /*************************************************************************
596cdf0e10cSrcweir |*    SvMetaExtern::SvMetaExtern()
597cdf0e10cSrcweir |*
598cdf0e10cSrcweir |*    Beschreibung
599cdf0e10cSrcweir *************************************************************************/
SvMetaExtern()600cdf0e10cSrcweir SvMetaExtern::SvMetaExtern()
601cdf0e10cSrcweir     : pModule( NULL )
602cdf0e10cSrcweir 	, bReadUUId( sal_False )
603cdf0e10cSrcweir 	, bReadVersion( sal_False )
604cdf0e10cSrcweir {
605cdf0e10cSrcweir }
606cdf0e10cSrcweir 
Load(SvPersistStream & rStm)607cdf0e10cSrcweir void SvMetaExtern::Load( SvPersistStream & rStm )
608cdf0e10cSrcweir {
609cdf0e10cSrcweir     SvMetaReference::Load( rStm );
610cdf0e10cSrcweir 
611cdf0e10cSrcweir     sal_uInt8 nMask;
612cdf0e10cSrcweir     rStm >> nMask;
613cdf0e10cSrcweir     if( nMask >= 0x20 )
614cdf0e10cSrcweir     {
615cdf0e10cSrcweir         rStm.SetError( SVSTREAM_FILEFORMAT_ERROR );
616cdf0e10cSrcweir         DBG_ERROR( "wrong format" );
617cdf0e10cSrcweir         return;
618cdf0e10cSrcweir     }
619cdf0e10cSrcweir     if( nMask & 0x01 ) rStm >> pModule;
620cdf0e10cSrcweir     if( nMask & 0x02 ) rStm >> aUUId;
621cdf0e10cSrcweir     if( nMask & 0x04 ) rStm >> aVersion;
622cdf0e10cSrcweir     if( nMask & 0x08 ) bReadUUId = sal_True;
623cdf0e10cSrcweir     if( nMask & 0x10 ) bReadVersion = sal_True;
624cdf0e10cSrcweir }
625cdf0e10cSrcweir 
Save(SvPersistStream & rStm)626cdf0e10cSrcweir void SvMetaExtern::Save( SvPersistStream & rStm )
627cdf0e10cSrcweir {
628cdf0e10cSrcweir     SvMetaReference::Save( rStm );
629cdf0e10cSrcweir 
630cdf0e10cSrcweir     // Maske erstellen
631cdf0e10cSrcweir     sal_uInt8 nMask = 0;
632cdf0e10cSrcweir     if( pModule )                	nMask |= 0x01;
633cdf0e10cSrcweir     if( aUUId != SvGlobalName() )	nMask |= 0x02;
634cdf0e10cSrcweir     if( aVersion != SvVersion() )	nMask |= 0x04;
635cdf0e10cSrcweir     if( bReadUUId ) 				nMask |= 0x08;
636cdf0e10cSrcweir     if( bReadVersion )  			nMask |= 0x10;
637cdf0e10cSrcweir 
638cdf0e10cSrcweir     // Daten schreiben
639cdf0e10cSrcweir     rStm << nMask;
640cdf0e10cSrcweir     if( nMask & 0x01 ) rStm << pModule;
641cdf0e10cSrcweir     if( nMask & 0x02 ) rStm << aUUId;
642cdf0e10cSrcweir     if( nMask & 0x04 ) rStm << aVersion;
643cdf0e10cSrcweir }
644cdf0e10cSrcweir 
645cdf0e10cSrcweir /*************************************************************************
646cdf0e10cSrcweir |*    SvMetaExtern::GetModule()
647cdf0e10cSrcweir |*
648cdf0e10cSrcweir |*    Beschreibung
649cdf0e10cSrcweir *************************************************************************/
GetModule() const650cdf0e10cSrcweir SvMetaModule * SvMetaExtern::GetModule() const
651cdf0e10cSrcweir {
652cdf0e10cSrcweir     DBG_ASSERT( pModule != NULL, "module not set" );
653cdf0e10cSrcweir     return pModule;
654cdf0e10cSrcweir }
655cdf0e10cSrcweir 
656cdf0e10cSrcweir /*************************************************************************
657cdf0e10cSrcweir |*    SvMetaExtern::GetUUId()
658cdf0e10cSrcweir |*
659cdf0e10cSrcweir |*    Beschreibung
660cdf0e10cSrcweir *************************************************************************/
GetUUId() const661cdf0e10cSrcweir const SvGlobalName & SvMetaExtern::GetUUId() const
662cdf0e10cSrcweir {
663cdf0e10cSrcweir #ifdef IDL_COMPILER
664cdf0e10cSrcweir     if( aUUId == SvGlobalName() )
665cdf0e10cSrcweir         GetModule()->FillNextName( &((SvMetaExtern *)this)->aUUId );
666cdf0e10cSrcweir #endif
667cdf0e10cSrcweir     return aUUId;
668cdf0e10cSrcweir }
669cdf0e10cSrcweir 
670cdf0e10cSrcweir #ifdef IDL_COMPILER
671cdf0e10cSrcweir /*************************************************************************
672cdf0e10cSrcweir |*    SvMetaExtern::SetModule()
673cdf0e10cSrcweir |*
674cdf0e10cSrcweir |*    Beschreibung
675cdf0e10cSrcweir *************************************************************************/
SetModule(SvIdlDataBase & rBase)676cdf0e10cSrcweir void SvMetaExtern::SetModule( SvIdlDataBase & rBase )
677cdf0e10cSrcweir {
678cdf0e10cSrcweir     pModule = (SvMetaModule *)rBase.GetStack().Get( TYPE( SvMetaModule ) );
679cdf0e10cSrcweir }
680cdf0e10cSrcweir 
681cdf0e10cSrcweir /*************************************************************************
682cdf0e10cSrcweir |*    SvMetaExtern::ReadAttributesSvIdl()
683cdf0e10cSrcweir |*
684cdf0e10cSrcweir |*    Beschreibung
685cdf0e10cSrcweir *************************************************************************/
ReadAttributesSvIdl(SvIdlDataBase & rBase,SvTokenStream & rInStm)686cdf0e10cSrcweir void SvMetaExtern::ReadAttributesSvIdl( SvIdlDataBase & rBase,
687cdf0e10cSrcweir                                         SvTokenStream & rInStm )
688cdf0e10cSrcweir {
689cdf0e10cSrcweir 	SvMetaReference::ReadAttributesSvIdl( rBase, rInStm );
690cdf0e10cSrcweir     if( aUUId.ReadSvIdl( rBase, rInStm ) )
691cdf0e10cSrcweir 		bReadUUId = sal_True;
692cdf0e10cSrcweir     if( aVersion.ReadSvIdl( rInStm ) )
693cdf0e10cSrcweir 		bReadVersion = sal_True;
694cdf0e10cSrcweir }
695cdf0e10cSrcweir 
696cdf0e10cSrcweir /*************************************************************************
697cdf0e10cSrcweir |*    SvMetaExtern::WriteAttributesSvIdl()
698cdf0e10cSrcweir |*
699cdf0e10cSrcweir |*    Beschreibung
700cdf0e10cSrcweir *************************************************************************/
WriteAttributesSvIdl(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab)701cdf0e10cSrcweir void SvMetaExtern::WriteAttributesSvIdl( SvIdlDataBase & rBase,
702cdf0e10cSrcweir                                          SvStream & rOutStm, sal_uInt16 nTab )
703cdf0e10cSrcweir {
704cdf0e10cSrcweir 	SvMetaReference::WriteAttributesSvIdl( rBase, rOutStm, nTab );
705cdf0e10cSrcweir 	if( bReadUUId || bReadVersion )
706cdf0e10cSrcweir     {
707cdf0e10cSrcweir 		WriteTab( rOutStm, nTab );
708cdf0e10cSrcweir 		rOutStm << "// class SvMetaExtern" << endl;
709cdf0e10cSrcweir 
710cdf0e10cSrcweir 		if( bReadUUId )
711cdf0e10cSrcweir 		{
712cdf0e10cSrcweir 		    WriteTab( rOutStm, nTab );
713cdf0e10cSrcweir 		    aUUId.WriteSvIdl( rOutStm );
714cdf0e10cSrcweir 		    rOutStm << ';' << endl;
715cdf0e10cSrcweir 		}
716cdf0e10cSrcweir 		if( bReadVersion )
717cdf0e10cSrcweir 		{
718cdf0e10cSrcweir 		    WriteTab( rOutStm, nTab );
719cdf0e10cSrcweir 		    aVersion.WriteSvIdl( rOutStm );
720cdf0e10cSrcweir 	    	rOutStm << ';' << endl;
721cdf0e10cSrcweir 		}
722cdf0e10cSrcweir 	}
723cdf0e10cSrcweir }
724cdf0e10cSrcweir 
725cdf0e10cSrcweir /*************************************************************************
726cdf0e10cSrcweir |*    SvMetaExtern::ReadSvIdl()
727cdf0e10cSrcweir |*
728cdf0e10cSrcweir |*    Beschreibung
729cdf0e10cSrcweir *************************************************************************/
ReadSvIdl(SvIdlDataBase & rBase,SvTokenStream & rInStm)730cdf0e10cSrcweir sal_Bool SvMetaExtern::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
731cdf0e10cSrcweir {
732cdf0e10cSrcweir 	SetModule( rBase );
733cdf0e10cSrcweir     GetUUId(); // Id wird angelegt
734cdf0e10cSrcweir     return SvMetaReference::ReadSvIdl( rBase, rInStm );
735cdf0e10cSrcweir }
736cdf0e10cSrcweir 
737cdf0e10cSrcweir /*************************************************************************
738cdf0e10cSrcweir |*    SvMetaExtern::WriteSvIdl()
739cdf0e10cSrcweir |*
740cdf0e10cSrcweir |*    Beschreibung
741cdf0e10cSrcweir *************************************************************************/
WriteSvIdl(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab)742cdf0e10cSrcweir void SvMetaExtern::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm,
743cdf0e10cSrcweir                                sal_uInt16 nTab )
744cdf0e10cSrcweir {
745cdf0e10cSrcweir     SvMetaReference::WriteSvIdl( rBase, rOutStm, nTab );
746cdf0e10cSrcweir }
747cdf0e10cSrcweir 
748cdf0e10cSrcweir /*************************************************************************
749cdf0e10cSrcweir |*    SvMetaExtern::Write()
750cdf0e10cSrcweir |*
751cdf0e10cSrcweir |*    Beschreibung
752cdf0e10cSrcweir *************************************************************************/
Write(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab,WriteType nT,WriteAttribute nA)753cdf0e10cSrcweir void SvMetaExtern::Write( SvIdlDataBase & rBase, SvStream & rOutStm,
754cdf0e10cSrcweir                         sal_uInt16 nTab,
755cdf0e10cSrcweir 		 				WriteType nT, WriteAttribute nA )
756cdf0e10cSrcweir {
757cdf0e10cSrcweir 	SvMetaReference::Write( rBase, rOutStm, nTab, nT, nA );
758cdf0e10cSrcweir }
759cdf0e10cSrcweir 
760cdf0e10cSrcweir /*************************************************************************
761cdf0e10cSrcweir |*    SvMetaExtern::WriteAttributes()
762cdf0e10cSrcweir |*
763cdf0e10cSrcweir |*    Beschreibung
764cdf0e10cSrcweir *************************************************************************/
WriteAttributes(SvIdlDataBase & rBase,SvStream & rOutStm,sal_uInt16 nTab,WriteType nT,WriteAttribute nA)765cdf0e10cSrcweir void SvMetaExtern::WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm,
766cdf0e10cSrcweir                              		sal_uInt16 nTab,
767cdf0e10cSrcweir 					 				WriteType nT, WriteAttribute nA )
768cdf0e10cSrcweir {
769cdf0e10cSrcweir 	SvMetaReference::WriteAttributes( rBase, rOutStm, nTab, nT, nA );
770cdf0e10cSrcweir 
771cdf0e10cSrcweir 	WriteTab( rOutStm, nTab );
772cdf0e10cSrcweir 	rOutStm << "// class SvMetaExtern" << endl;
773cdf0e10cSrcweir 	WriteTab( rOutStm, nTab );
774cdf0e10cSrcweir     rOutStm << "uuid(" << ByteString( GetUUId().GetHexName(), RTL_TEXTENCODING_UTF8 ).GetBuffer() << ")," << endl;
775cdf0e10cSrcweir 	WriteTab( rOutStm, nTab );
776cdf0e10cSrcweir     rOutStm << "version(" << ByteString::CreateFromInt32( aVersion.GetMajorVersion() ).GetBuffer() << '.'
777cdf0e10cSrcweir              << ByteString::CreateFromInt32( aVersion.GetMinorVersion() ).GetBuffer() << ")," << endl;
778cdf0e10cSrcweir }
779cdf0e10cSrcweir 
780cdf0e10cSrcweir #endif // IDL_COMPILER
781cdf0e10cSrcweir 
782cdf0e10cSrcweir 
783