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