AlterOffice
AlterOffice 3.4 SDK C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
typeprovider.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 #ifndef INCLUDED_CPPUHELPER_TYPEPROVIDER_HXX
4 #define INCLUDED_CPPUHELPER_TYPEPROVIDER_HXX
5 
6 #include "sal/config.h"
7 
8 #include <cstddef>
9 
10 #include "rtl/alloc.h"
13 
14 
15 namespace cppu
16 {
17 
22 {
23  css::uno::Sequence< css::uno::Type > _aTypes;
24 
25 public:
27  // these are here to force memory de/allocation to sal lib.
28  static void * SAL_CALL operator new( size_t nSize )
29  { return ::rtl_allocateMemory( nSize ); }
30  static void SAL_CALL operator delete( void * pMem )
31  { ::rtl_freeMemory( pMem ); }
32  static void * SAL_CALL operator new( size_t, void * pMem )
33  { return pMem; }
34  static void SAL_CALL operator delete( void *, void * )
35  {}
37 
39  const css::uno::Type & rType1,
40  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
42  const css::uno::Type & rType1,
43  const css::uno::Type & rType2,
44  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
46  const css::uno::Type & rType1,
47  const css::uno::Type & rType2,
48  const css::uno::Type & rType3,
49  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
51  const css::uno::Type & rType1,
52  const css::uno::Type & rType2,
53  const css::uno::Type & rType3,
54  const css::uno::Type & rType4,
55  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
57  const css::uno::Type & rType1,
58  const css::uno::Type & rType2,
59  const css::uno::Type & rType3,
60  const css::uno::Type & rType4,
61  const css::uno::Type & rType5,
62  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
64  const css::uno::Type & rType1,
65  const css::uno::Type & rType2,
66  const css::uno::Type & rType3,
67  const css::uno::Type & rType4,
68  const css::uno::Type & rType5,
69  const css::uno::Type & rType6,
70  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
72  const css::uno::Type & rType1,
73  const css::uno::Type & rType2,
74  const css::uno::Type & rType3,
75  const css::uno::Type & rType4,
76  const css::uno::Type & rType5,
77  const css::uno::Type & rType6,
78  const css::uno::Type & rType7,
79  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
81  const css::uno::Type & rType1,
82  const css::uno::Type & rType2,
83  const css::uno::Type & rType3,
84  const css::uno::Type & rType4,
85  const css::uno::Type & rType5,
86  const css::uno::Type & rType6,
87  const css::uno::Type & rType7,
88  const css::uno::Type & rType8,
89  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
91  const css::uno::Type & rType1,
92  const css::uno::Type & rType2,
93  const css::uno::Type & rType3,
94  const css::uno::Type & rType4,
95  const css::uno::Type & rType5,
96  const css::uno::Type & rType6,
97  const css::uno::Type & rType7,
98  const css::uno::Type & rType8,
99  const css::uno::Type & rType9,
100  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
102  const css::uno::Type & rType1,
103  const css::uno::Type & rType2,
104  const css::uno::Type & rType3,
105  const css::uno::Type & rType4,
106  const css::uno::Type & rType5,
107  const css::uno::Type & rType6,
108  const css::uno::Type & rType7,
109  const css::uno::Type & rType8,
110  const css::uno::Type & rType9,
111  const css::uno::Type & rType10,
112  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
114  const css::uno::Type & rType1,
115  const css::uno::Type & rType2,
116  const css::uno::Type & rType3,
117  const css::uno::Type & rType4,
118  const css::uno::Type & rType5,
119  const css::uno::Type & rType6,
120  const css::uno::Type & rType7,
121  const css::uno::Type & rType8,
122  const css::uno::Type & rType9,
123  const css::uno::Type & rType10,
124  const css::uno::Type & rType11,
125  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
127  const css::uno::Type & rType1,
128  const css::uno::Type & rType2,
129  const css::uno::Type & rType3,
130  const css::uno::Type & rType4,
131  const css::uno::Type & rType5,
132  const css::uno::Type & rType6,
133  const css::uno::Type & rType7,
134  const css::uno::Type & rType8,
135  const css::uno::Type & rType9,
136  const css::uno::Type & rType10,
137  const css::uno::Type & rType11,
138  const css::uno::Type & rType12,
139  const css::uno::Sequence< css::uno::Type > & rAddTypes = css::uno::Sequence< css::uno::Type >() );
140 
145  css::uno::Sequence< css::uno::Type > SAL_CALL getTypes()
146  { return _aTypes; }
147 #if defined LIBO_INTERNAL_ONLY
148  css::uno::Sequence< css::uno::Type > const & getTypes() const
149  { return _aTypes; }
150 #endif
151 };
152 
156 class SAL_DEPRECATED("Uses broken double checked locking") SAL_WARN_UNUSED CPPUHELPER_DLLPUBLIC OImplementationId
157 {
158  mutable css::uno::Sequence< sal_Int8 > * _pSeq;
159  sal_Bool _bUseEthernetAddress;
160 
161 public:
163 
164  // these are here to force memory de/allocation to sal lib.
165  static void * SAL_CALL operator new( size_t nSize )
166  { return ::rtl_allocateMemory( nSize ); }
167  static void SAL_CALL operator delete( void * pMem )
168  { ::rtl_freeMemory( pMem ); }
169  static void * SAL_CALL operator new( size_t, void * pMem )
170  { return pMem; }
171  static void SAL_CALL operator delete( void *, void * )
172  {}
173 
175 
177 
182  OImplementationId( bool bUseEthernetAddress = true )
183  : _pSeq( NULL )
184  , _bUseEthernetAddress( bUseEthernetAddress )
185  {}
190  OImplementationId( const css::uno::Sequence< sal_Int8 > & rSeq )
191  : _pSeq( new css::uno::Sequence< sal_Int8 >( rSeq ) )
192  , _bUseEthernetAddress( false )
193  {}
196  : _pSeq( new css::uno::Sequence< sal_Int8 >( rId.getImplementationId() ) )
197  , _bUseEthernetAddress( false )
198  {}
200 
205  css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() const;
206 };
207 
208 }
209 
210 #endif
211 
212 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define SAL_WNODEPRECATED_DECLARATIONS_POP
Definition: types.h:489
unsigned char sal_Bool
Definition: types.h:18
SAL_DLLPUBLIC void rtl_freeMemory(void *Ptr) SAL_THROW_EXTERN_C()
Free memory.
#define SAL_WNODEPRECATED_DECLARATIONS_PUSH
Use as follows: SAL_WNODEPRECATED_DECLARATIONS_PUSH ::std::auto_ptr&lt;X&gt; ...
Definition: types.h:488
OImplementationId(const css::uno::Sequence< sal_Int8 > &rSeq)
Constructor giving implementation id.
Definition: typeprovider.hxx:190
css::uno::Sequence< css::uno::Type > getTypes()
Called upon XTypeProvider::getTypes().
Definition: typeprovider.hxx:145
OImplementationId(bool bUseEthernetAddress=true)
Constructor.
Definition: typeprovider.hxx:182
#define SAL_DEPRECATED(message)
Use as follows: SAL_DEPRECATED(&quot;Don&#39;t use, it&#39;s evil.&quot;) void doit(int nPara);.
Definition: types.h:454
SAL_WNODEPRECATED_DECLARATIONS_PUSH OImplementationId(const OImplementationId &rId)
Definition: typeprovider.hxx:195
#define SAL_WARN_UNUSED
Annotate classes where a compiler should warn if an instance is unused.
Definition: types.h:567
#define CPPUHELPER_DLLPUBLIC
Definition: cppuhelperdllapi.h:12
Helper class to implement css::lang::XTypeProvider.
Definition: typeprovider.hxx:21
SAL_DLLPUBLIC void * rtl_allocateMemory(sal_Size Bytes) SAL_THROW_EXTERN_C()
Allocate memory.
Helper class to implement IDs for XUnoTunnel.
Definition: typeprovider.hxx:156
signed char sal_Int8
Definition: types.h:23