xref: /AOO41X/main/basic/inc/basic/sbx.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef _SBXCLASS_HXX
29*cdf0e10cSrcweir #define _SBXCLASS_HXX
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include "tools/ref.hxx"
32*cdf0e10cSrcweir #include "svl/svarray.hxx"
33*cdf0e10cSrcweir #include "svl/smplhint.hxx"
34*cdf0e10cSrcweir #include "svl/lstner.hxx"
35*cdf0e10cSrcweir #include <basic/sbxdef.hxx>
36*cdf0e10cSrcweir #include <basic/sbxform.hxx>
37*cdf0e10cSrcweir 
38*cdf0e10cSrcweir #ifndef __SBX_SBXOBJECT_HXX
39*cdf0e10cSrcweir #include <basic/sbxobj.hxx>
40*cdf0e10cSrcweir #endif
41*cdf0e10cSrcweir #include <basic/sbxprop.hxx>
42*cdf0e10cSrcweir #include <basic/sbxmeth.hxx>
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir class BigInt;
45*cdf0e10cSrcweir class String;
46*cdf0e10cSrcweir class UniString;
47*cdf0e10cSrcweir class SvStream;
48*cdf0e10cSrcweir class SbxBase;
49*cdf0e10cSrcweir class SbxVariable;
50*cdf0e10cSrcweir class SbxProperty;
51*cdf0e10cSrcweir class SbxMethod;
52*cdf0e10cSrcweir class SbxObject;
53*cdf0e10cSrcweir class SbxArray;
54*cdf0e10cSrcweir class SbxDimArray;
55*cdf0e10cSrcweir class SbxFactory;
56*cdf0e10cSrcweir struct SbxINT64;
57*cdf0e10cSrcweir struct SbxUINT64;
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir class SfxBroadcaster;
60*cdf0e10cSrcweir class SvDispatch;
61*cdf0e10cSrcweir 
62*cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir #ifndef __SBX_SBXPARAMINFO
67*cdf0e10cSrcweir #define __SBX_SBXPARAMINFO
68*cdf0e10cSrcweir 
69*cdf0e10cSrcweir // Parameter information
70*cdf0e10cSrcweir struct SbxParamInfo
71*cdf0e10cSrcweir {
72*cdf0e10cSrcweir     const String aName;          // Name of the parameter
73*cdf0e10cSrcweir     SbxBaseRef   aTypeRef;       // Object, if object type
74*cdf0e10cSrcweir     SbxDataType  eType;          // Data type
75*cdf0e10cSrcweir     sal_uInt16       nFlags;         // Flag-Bits
76*cdf0e10cSrcweir     sal_uInt32       nUserData;      // IDs etc.
77*cdf0e10cSrcweir     SbxParamInfo( const String& s, SbxDataType t, sal_uInt16 n, SbxBase* b = NULL )
78*cdf0e10cSrcweir 	: aName( s ), aTypeRef( b ), eType( t ), nFlags( n ), nUserData( 0 ) {}
79*cdf0e10cSrcweir 	~SbxParamInfo() {}
80*cdf0e10cSrcweir };
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir //#if 0 // _SOLAR__PRIVATE
83*cdf0e10cSrcweir SV_DECL_PTRARR_DEL(SbxParams,SbxParamInfo*,4,4)
84*cdf0e10cSrcweir //#else
85*cdf0e10cSrcweir //typedef SvPtrarr SbxParams;
86*cdf0e10cSrcweir //#endif
87*cdf0e10cSrcweir 
88*cdf0e10cSrcweir #endif
89*cdf0e10cSrcweir 
90*cdf0e10cSrcweir #ifndef __SBX_SBXINFO
91*cdf0e10cSrcweir #define __SBX_SBXINFO
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir class SbxInfo : public SvRefBase
94*cdf0e10cSrcweir {
95*cdf0e10cSrcweir 	friend class SbxVariable;
96*cdf0e10cSrcweir 	friend class SbMethod;
97*cdf0e10cSrcweir 
98*cdf0e10cSrcweir 	String			aComment;
99*cdf0e10cSrcweir 	String			aHelpFile;
100*cdf0e10cSrcweir 	sal_uInt32			nHelpId;
101*cdf0e10cSrcweir 	SbxParams		aParams;
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir protected:
104*cdf0e10cSrcweir 	sal_Bool LoadData( SvStream&, sal_uInt16 );
105*cdf0e10cSrcweir 	sal_Bool StoreData( SvStream& ) const;
106*cdf0e10cSrcweir 	virtual ~SbxInfo();
107*cdf0e10cSrcweir public:
108*cdf0e10cSrcweir 	SbxInfo();
109*cdf0e10cSrcweir 	SbxInfo( const String&, sal_uInt32 );
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir 	void				AddParam( const String&, SbxDataType, sal_uInt16=SBX_READ );
112*cdf0e10cSrcweir 	void				AddParam( const SbxParamInfo& );
113*cdf0e10cSrcweir 	const SbxParamInfo*	GetParam( sal_uInt16 n ) const;	// index starts with 1!
114*cdf0e10cSrcweir 	const String&		GetComment() const				{ return aComment; }
115*cdf0e10cSrcweir 	const String&		GetHelpFile() const    			{ return aHelpFile; }
116*cdf0e10cSrcweir 	sal_uInt32				GetHelpId() const				{ return nHelpId;   }
117*cdf0e10cSrcweir 
118*cdf0e10cSrcweir 	void				SetComment( const String& r )	{ aComment = r; }
119*cdf0e10cSrcweir 	void				SetHelpFile( const String& r )	{ aHelpFile = r; }
120*cdf0e10cSrcweir 	void				SetHelpId( sal_uInt32 nId )			{ nHelpId = nId; }
121*cdf0e10cSrcweir };
122*cdf0e10cSrcweir 
123*cdf0e10cSrcweir #endif
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir #ifndef __SBX_SBXHINT_HXX
126*cdf0e10cSrcweir #define __SBX_SBXHINT_HXX
127*cdf0e10cSrcweir 
128*cdf0e10cSrcweir class SbxHint : public SfxSimpleHint
129*cdf0e10cSrcweir {
130*cdf0e10cSrcweir 	SbxVariable* pVar;
131*cdf0e10cSrcweir public:
132*cdf0e10cSrcweir 	TYPEINFO();
133*cdf0e10cSrcweir 	SbxHint( sal_uIntPtr n, SbxVariable* v ) : SfxSimpleHint( n ), pVar( v ) {}
134*cdf0e10cSrcweir 	SbxVariable* GetVar() const { return pVar; }
135*cdf0e10cSrcweir };
136*cdf0e10cSrcweir 
137*cdf0e10cSrcweir #endif
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir #ifndef __SBX_SBXALIAS_HXX
140*cdf0e10cSrcweir #define __SBX_SBXALIAS_HXX
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir // SbxAlias is an alias for a var or object
143*cdf0e10cSrcweir class SbxAlias : public SbxVariable, public SfxListener
144*cdf0e10cSrcweir {
145*cdf0e10cSrcweir 	SbxVariableRef xAlias;
146*cdf0e10cSrcweir 	virtual ~SbxAlias();
147*cdf0e10cSrcweir 	virtual void Broadcast( sal_uIntPtr );
148*cdf0e10cSrcweir 	virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
149*cdf0e10cSrcweir 							 const SfxHint& rHint, const TypeId& rHintType );
150*cdf0e10cSrcweir public:
151*cdf0e10cSrcweir 	SbxAlias( const String& rName, SbxVariable* pOriginal );
152*cdf0e10cSrcweir 	SbxAlias( const SbxAlias& );
153*cdf0e10cSrcweir 	SbxAlias& operator=( const SbxAlias& );
154*cdf0e10cSrcweir };
155*cdf0e10cSrcweir 
156*cdf0e10cSrcweir #endif
157*cdf0e10cSrcweir 
158*cdf0e10cSrcweir #ifndef __SBX_SBXARRAY
159*cdf0e10cSrcweir #define __SBX_SBXARRAY
160*cdf0e10cSrcweir 
161*cdf0e10cSrcweir // SbxArray ist ein eindimensionales, dynamisches Array
162*cdf0e10cSrcweir // von SbxVariablen. Put()/Insert() konvertieren die Variablen in den
163*cdf0e10cSrcweir // angegebenen Datentyp, falls er nicht SbxVARIANT ist.
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir class SbxVarRefs;
166*cdf0e10cSrcweir class SbxVariableRef;
167*cdf0e10cSrcweir 
168*cdf0e10cSrcweir class SbxArrayImpl;
169*cdf0e10cSrcweir 
170*cdf0e10cSrcweir class SbxArray : public SbxBase
171*cdf0e10cSrcweir {
172*cdf0e10cSrcweir // #100883 Method to set method directly to parameter array
173*cdf0e10cSrcweir     friend class SbMethod;
174*cdf0e10cSrcweir     friend class SbClassModuleObject;
175*cdf0e10cSrcweir 	friend SbxObject* cloneTypeObjectImpl( const SbxObject& rTypeObj );
176*cdf0e10cSrcweir     void PutDirect( SbxVariable* pVar, sal_uInt32 nIdx );
177*cdf0e10cSrcweir 
178*cdf0e10cSrcweir     SbxArrayImpl* mpSbxArrayImpl; // Impl data
179*cdf0e10cSrcweir     SbxVarRefs*   pData;          // The variables
180*cdf0e10cSrcweir 
181*cdf0e10cSrcweir protected:
182*cdf0e10cSrcweir     SbxDataType eType;            // Data type of the array
183*cdf0e10cSrcweir     virtual ~SbxArray();
184*cdf0e10cSrcweir     virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
185*cdf0e10cSrcweir     virtual sal_Bool StoreData( SvStream& ) const;
186*cdf0e10cSrcweir 
187*cdf0e10cSrcweir public:
188*cdf0e10cSrcweir     SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_ARRAY,1);
189*cdf0e10cSrcweir     TYPEINFO();
190*cdf0e10cSrcweir     SbxArray( SbxDataType=SbxVARIANT );
191*cdf0e10cSrcweir     SbxArray( const SbxArray& );
192*cdf0e10cSrcweir     SbxArray& operator=( const SbxArray& );
193*cdf0e10cSrcweir     virtual void Clear();
194*cdf0e10cSrcweir     sal_uInt16 Count() const;
195*cdf0e10cSrcweir     virtual SbxDataType GetType() const;
196*cdf0e10cSrcweir     virtual SbxClassType GetClass() const;
197*cdf0e10cSrcweir     SbxVariableRef& GetRef( sal_uInt16 );
198*cdf0e10cSrcweir     SbxVariable* Get( sal_uInt16 );
199*cdf0e10cSrcweir     void Put( SbxVariable*, sal_uInt16 );
200*cdf0e10cSrcweir     void Insert( SbxVariable*, sal_uInt16 );
201*cdf0e10cSrcweir     void Remove( sal_uInt16 );
202*cdf0e10cSrcweir     void Remove( SbxVariable* );
203*cdf0e10cSrcweir     void Merge( SbxArray* );
204*cdf0e10cSrcweir     const String& GetAlias( sal_uInt16 );
205*cdf0e10cSrcweir     void PutAlias( const String&, sal_uInt16 );
206*cdf0e10cSrcweir     SbxVariable* FindUserData( sal_uInt32 nUserData );
207*cdf0e10cSrcweir     virtual SbxVariable* Find( const String&, SbxClassType );
208*cdf0e10cSrcweir 
209*cdf0e10cSrcweir     // Additional methods for 32-bit indices
210*cdf0e10cSrcweir     sal_uInt32 Count32() const;
211*cdf0e10cSrcweir     SbxVariableRef& GetRef32( sal_uInt32 );
212*cdf0e10cSrcweir     SbxVariable* Get32( sal_uInt32 );
213*cdf0e10cSrcweir     void Put32( SbxVariable*, sal_uInt32 );
214*cdf0e10cSrcweir     void Insert32( SbxVariable*, sal_uInt32 );
215*cdf0e10cSrcweir     void Remove32( sal_uInt32 );
216*cdf0e10cSrcweir };
217*cdf0e10cSrcweir 
218*cdf0e10cSrcweir #endif
219*cdf0e10cSrcweir 
220*cdf0e10cSrcweir #ifndef __SBX_SBXDIMARRAY_HXX
221*cdf0e10cSrcweir #define __SBX_SBXDIMARRAY_HXX
222*cdf0e10cSrcweir 
223*cdf0e10cSrcweir // SbxDimArray is an array that can dimensioned using BASIC conventions.
224*cdf0e10cSrcweir struct SbxDim;
225*cdf0e10cSrcweir 
226*cdf0e10cSrcweir class SbxDimArrayImpl;
227*cdf0e10cSrcweir 
228*cdf0e10cSrcweir class SbxDimArray : public SbxArray
229*cdf0e10cSrcweir {
230*cdf0e10cSrcweir 	SbxDimArrayImpl* mpSbxDimArrayImpl;   // Impl data
231*cdf0e10cSrcweir 
232*cdf0e10cSrcweir 	SbxDim* pFirst, *pLast;               // Links to Dimension table
233*cdf0e10cSrcweir 	short   nDim;                         // Number of dimensions
234*cdf0e10cSrcweir 	void   AddDimImpl32( sal_Int32, sal_Int32, sal_Bool bAllowSize0 );
235*cdf0e10cSrcweir 	bool mbHasFixedSize;
236*cdf0e10cSrcweir protected:
237*cdf0e10cSrcweir 	sal_uInt16  Offset( const short* );
238*cdf0e10cSrcweir 	sal_uInt32  Offset32( const sal_Int32* );
239*cdf0e10cSrcweir 	sal_uInt16  Offset( SbxArray* );
240*cdf0e10cSrcweir 	sal_uInt32  Offset32( SbxArray* );
241*cdf0e10cSrcweir 	virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
242*cdf0e10cSrcweir 	virtual sal_Bool StoreData( SvStream& ) const;
243*cdf0e10cSrcweir 	virtual ~SbxDimArray();
244*cdf0e10cSrcweir public:
245*cdf0e10cSrcweir 	SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_DIMARRAY,1);
246*cdf0e10cSrcweir 	TYPEINFO();
247*cdf0e10cSrcweir 	SbxDimArray( SbxDataType=SbxVARIANT );
248*cdf0e10cSrcweir 	SbxDimArray( const SbxDimArray& );
249*cdf0e10cSrcweir 	SbxDimArray& operator=( const SbxDimArray& );
250*cdf0e10cSrcweir 	virtual void Clear();
251*cdf0e10cSrcweir 	using SbxArray::GetRef;
252*cdf0e10cSrcweir 	SbxVariableRef& GetRef( const short* );
253*cdf0e10cSrcweir 	using SbxArray::Get;
254*cdf0e10cSrcweir 	SbxVariable* Get( const short* );
255*cdf0e10cSrcweir 	using SbxArray::Put;
256*cdf0e10cSrcweir 	void Put( SbxVariable*, const short* );
257*cdf0e10cSrcweir 	SbxVariableRef& GetRef( SbxArray* );
258*cdf0e10cSrcweir 	SbxVariable* Get( SbxArray* );
259*cdf0e10cSrcweir 	void Put( SbxVariable*, SbxArray* );
260*cdf0e10cSrcweir 
261*cdf0e10cSrcweir 	short  GetDims() const { return nDim;  }
262*cdf0e10cSrcweir 	void   AddDim( short, short );
263*cdf0e10cSrcweir 	void   unoAddDim( short, short );
264*cdf0e10cSrcweir 	sal_Bool   GetDim( short, short&, short& ) const;
265*cdf0e10cSrcweir 
266*cdf0e10cSrcweir 	using SbxArray::GetRef32;
267*cdf0e10cSrcweir 	SbxVariableRef& GetRef32( const sal_Int32* );
268*cdf0e10cSrcweir 	using SbxArray::Get32;
269*cdf0e10cSrcweir 	SbxVariable* Get32( const sal_Int32* );
270*cdf0e10cSrcweir 	using SbxArray::Put32;
271*cdf0e10cSrcweir 	void Put32( SbxVariable*, const sal_Int32* );
272*cdf0e10cSrcweir 	void   AddDim32( sal_Int32, sal_Int32 );
273*cdf0e10cSrcweir 	void   unoAddDim32( sal_Int32, sal_Int32 );
274*cdf0e10cSrcweir 	sal_Bool   GetDim32( sal_Int32, sal_Int32&, sal_Int32& ) const;
275*cdf0e10cSrcweir         bool hasFixedSize() { return mbHasFixedSize; };
276*cdf0e10cSrcweir         void setHasFixedSize( bool bHasFixedSize ) {mbHasFixedSize = bHasFixedSize; };
277*cdf0e10cSrcweir };
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir #endif
280*cdf0e10cSrcweir 
281*cdf0e10cSrcweir #ifndef __SBX_SBXCOLLECTION_HXX
282*cdf0e10cSrcweir #define __SBX_SBXCOLLECTION_HXX
283*cdf0e10cSrcweir 
284*cdf0e10cSrcweir class SbxCollection : public SbxObject
285*cdf0e10cSrcweir {
286*cdf0e10cSrcweir 	void Initialize();
287*cdf0e10cSrcweir protected:
288*cdf0e10cSrcweir 	virtual ~SbxCollection();
289*cdf0e10cSrcweir 	virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
290*cdf0e10cSrcweir 	virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
291*cdf0e10cSrcweir 							 const SfxHint& rHint, const TypeId& rHintType );
292*cdf0e10cSrcweir 	// Overridable methods (why not pure virtual?):
293*cdf0e10cSrcweir 	virtual void CollAdd( SbxArray* pPar );
294*cdf0e10cSrcweir 	virtual void CollItem( SbxArray* pPar );
295*cdf0e10cSrcweir 	virtual void CollRemove( SbxArray* pPar );
296*cdf0e10cSrcweir 
297*cdf0e10cSrcweir public:
298*cdf0e10cSrcweir 	SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_COLLECTION,1);
299*cdf0e10cSrcweir 	TYPEINFO();
300*cdf0e10cSrcweir 	SbxCollection( const String& rClassname );
301*cdf0e10cSrcweir 	SbxCollection( const SbxCollection& );
302*cdf0e10cSrcweir 	SbxCollection& operator=( const SbxCollection& );
303*cdf0e10cSrcweir 	virtual SbxVariable* FindUserData( sal_uInt32 nUserData );
304*cdf0e10cSrcweir 	virtual SbxVariable* Find( const String&, SbxClassType );
305*cdf0e10cSrcweir 	virtual void Clear();
306*cdf0e10cSrcweir };
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir #endif
309*cdf0e10cSrcweir 
310*cdf0e10cSrcweir #ifndef __SBX_SBXSTDCOLLECTION_HXX
311*cdf0e10cSrcweir #define __SBX_SBXSTDCOLLECTION_HXX
312*cdf0e10cSrcweir 
313*cdf0e10cSrcweir class SbxStdCollection : public SbxCollection
314*cdf0e10cSrcweir {
315*cdf0e10cSrcweir protected:
316*cdf0e10cSrcweir 	String aElemClass;
317*cdf0e10cSrcweir 	sal_Bool   bAddRemoveOk;
318*cdf0e10cSrcweir 	virtual ~SbxStdCollection();
319*cdf0e10cSrcweir 	virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
320*cdf0e10cSrcweir 	virtual sal_Bool StoreData( SvStream& ) const;
321*cdf0e10cSrcweir 	virtual void CollAdd( SbxArray* pPar );
322*cdf0e10cSrcweir 	virtual void CollRemove( SbxArray* pPar );
323*cdf0e10cSrcweir public:
324*cdf0e10cSrcweir 	SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_FIXCOLLECTION,1);
325*cdf0e10cSrcweir 	TYPEINFO();
326*cdf0e10cSrcweir 	SbxStdCollection
327*cdf0e10cSrcweir 		( const String& rClassname, const String& rElemClass, sal_Bool=sal_True );
328*cdf0e10cSrcweir 	SbxStdCollection( const SbxStdCollection& );
329*cdf0e10cSrcweir 	SbxStdCollection& operator=( const SbxStdCollection& );
330*cdf0e10cSrcweir 	virtual void Insert( SbxVariable* );
331*cdf0e10cSrcweir 	const String& GetElementClass() const { return aElemClass; }
332*cdf0e10cSrcweir };
333*cdf0e10cSrcweir 
334*cdf0e10cSrcweir #endif
335*cdf0e10cSrcweir 
336*cdf0e10cSrcweir #ifndef __SBX_SBXREFS_HXX
337*cdf0e10cSrcweir #define __SBX_SBXREFS_HXX
338*cdf0e10cSrcweir 
339*cdf0e10cSrcweir SV_IMPL_REF(SbxBase)
340*cdf0e10cSrcweir 
341*cdf0e10cSrcweir SV_IMPL_REF(SbxVariable)
342*cdf0e10cSrcweir 
343*cdf0e10cSrcweir #ifndef SBX_ARRAY_DECL_DEFINED
344*cdf0e10cSrcweir #define SBX_ARRAY_DECL_DEFINED
345*cdf0e10cSrcweir SV_DECL_REF(SbxArray)
346*cdf0e10cSrcweir #endif
347*cdf0e10cSrcweir #ifndef SBX_ARRAY_IMPL_DEFINED
348*cdf0e10cSrcweir #define SBX_ARRAY_IMPL_DEFINED
349*cdf0e10cSrcweir SV_IMPL_REF(SbxArray)
350*cdf0e10cSrcweir #endif
351*cdf0e10cSrcweir 
352*cdf0e10cSrcweir #ifndef SBX_INFO_DECL_DEFINED
353*cdf0e10cSrcweir #define SBX_INFO_DECL_DEFINED
354*cdf0e10cSrcweir SV_DECL_REF(SbxInfo)
355*cdf0e10cSrcweir #endif
356*cdf0e10cSrcweir #ifndef SBX_INFO_IMPL_DEFINED
357*cdf0e10cSrcweir #define SBX_INFO_IMPL_DEFINED
358*cdf0e10cSrcweir SV_IMPL_REF(SbxInfo)
359*cdf0e10cSrcweir #endif
360*cdf0e10cSrcweir 
361*cdf0e10cSrcweir #ifndef SBX_DIMARRAY_DECL_DEFINED
362*cdf0e10cSrcweir #define SBX_DIMARRAY_DECL_DEFINED
363*cdf0e10cSrcweir SV_DECL_REF(SbxDimArray)
364*cdf0e10cSrcweir #endif
365*cdf0e10cSrcweir SV_IMPL_REF(SbxDimArray)
366*cdf0e10cSrcweir 
367*cdf0e10cSrcweir #endif
368*cdf0e10cSrcweir 
369*cdf0e10cSrcweir #endif
370