1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _OCONNECTIONPOINTCONTAINERHELPER_HXX
25 #define _OCONNECTIONPOINTCONTAINERHELPER_HXX
26 
27 //______________________________________________________________________________________________________________
28 //	includes of other projects
29 //______________________________________________________________________________________________________________
30 
31 #include <com/sun/star/lang/XConnectionPointContainer.hpp>
32 #include <com/sun/star/lang/XConnectionPoint.hpp>
33 #include <cppuhelper/weak.hxx>
34 #include <cppuhelper/propshlp.hxx>
35 
36 //______________________________________________________________________________________________________________
37 //	includes of my own project
38 //______________________________________________________________________________________________________________
39 
40 //______________________________________________________________________________________________________________
41 //	namespaces
42 //______________________________________________________________________________________________________________
43 
44 namespace unocontrols{
45 
46 #define	UNO3_ANY										::com::sun::star::uno::Any
47 #define	UNO3_SEQUENCE									::com::sun::star::uno::Sequence
48 #define	UNO3_TYPE										::com::sun::star::uno::Type
49 #define	UNO3_REFERENCE									::com::sun::star::uno::Reference
50 #define	UNO3_XCONNECTIONPOINTCONTAINER					::com::sun::star::lang::XConnectionPointContainer
51 #define	UNO3_XCONNECTIONPOINT							::com::sun::star::lang::XConnectionPoint
52 #define	UNO3_MUTEX										::osl::Mutex
53 #define	UNO3_RUNTIMEEXCEPTION							::com::sun::star::uno::RuntimeException
54 #define	UNO3_XINTERFACE									::com::sun::star::uno::XInterface
55 #define	UNO3_OMULTITYPEINTERFACECONTAINERHELPER			::cppu::OMultiTypeInterfaceContainerHelper
56 #define	UNO3_LISTENEREXISTEXCEPTION						::com::sun::star::lang::ListenerExistException
57 #define	UNO3_INVALIDLISTENEREXCEPTION					::com::sun::star::lang::InvalidListenerException
58 #define	UNO3_WEAKREFERENCE								::com::sun::star::uno::WeakReference
59 #define	UNO3_OWEAKOBJECT								::cppu::OWeakObject
60 
61 //______________________________________________________________________________________________________________
62 //	defines
63 //______________________________________________________________________________________________________________
64 
65 //______________________________________________________________________________________________________________
66 //	class declaration OConnectionPointContainerHelper
67 //______________________________________________________________________________________________________________
68 
69 class OConnectionPointContainerHelper	:	public	UNO3_XCONNECTIONPOINTCONTAINER
70 										,	public	UNO3_OWEAKOBJECT
71 {
72 
73 //______________________________________________________________________________________________________________
74 //	public methods
75 //______________________________________________________________________________________________________________
76 
77 public:
78 
79 	//__________________________________________________________________________________________________________
80 	//	construct/destruct
81 	//__________________________________________________________________________________________________________
82 
83 	/**_________________________________________________________________________________________________________
84 		@short
85 		@descr
86 
87 		@seealso
88 
89 		@param
90 
91 		@return
92 
93 		@onerror
94 	*/
95 
96 	OConnectionPointContainerHelper( UNO3_MUTEX& aMutex );
97 
98 	/**_________________________________________________________________________________________________________
99 		@short
100 		@descr
101 
102 		@seealso
103 
104 		@param
105 
106 		@return
107 
108 		@onerror
109 	*/
110 
111 	virtual	~OConnectionPointContainerHelper();
112 
113 	//________________________________________________________________________________________________________
114 	//	XInterface
115 	//________________________________________________________________________________________________________
116 
117 	/**_______________________________________________________________________________________________________
118 		@short		give answer, if interface is supported
119 		@descr		The interfaces are searched by type.
120 
121 		@seealso	XInterface
122 
123 		@param      "rType" is the type of searched interface.
124 
125 		@return		Any		information about found interface
126 
127 		@onerror	A RuntimeException is thrown.
128 	*/
129 
130 	virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
131 
132 	/**_______________________________________________________________________________________________________
133 		@short		increment refcount
134 		@descr		-
135 
136 		@seealso	XInterface
137 		@seealso	release()
138 
139 		@param		-
140 
141 		@return		-
142 
143 		@onerror	A RuntimeException is thrown.
144 	*/
145 
146     virtual void SAL_CALL acquire() throw();
147 
148 	/**_______________________________________________________________________________________________________
149 		@short		decrement refcount
150 		@descr		-
151 
152 		@seealso	XInterface
153 		@seealso	acquire()
154 
155 		@param		-
156 
157 		@return		-
158 
159 		@onerror	A RuntimeException is thrown.
160 	*/
161 
162     virtual void SAL_CALL release() throw();
163 
164 	//__________________________________________________________________________________________________________
165 	//	XConnectionPointContainer
166 	//__________________________________________________________________________________________________________
167 
168 	/**_________________________________________________________________________________________________________
169 		@short
170 		@descr
171 
172 		@seealso
173 
174 		@param
175 
176 		@return
177 
178 		@onerror
179 	*/
180 
181     virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getConnectionPointTypes() throw( UNO3_RUNTIMEEXCEPTION );
182 
183 	/**_________________________________________________________________________________________________________
184 		@short
185 		@descr
186 
187 		@seealso
188 
189 		@param
190 
191 		@return
192 
193 		@onerror
194 	*/
195 
196     virtual UNO3_REFERENCE< UNO3_XCONNECTIONPOINT > SAL_CALL queryConnectionPoint( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
197 
198 	/**_________________________________________________________________________________________________________
199 		@short
200 		@descr
201 
202 		@seealso
203 
204 		@param
205 
206 		@return
207 
208 		@onerror
209 	*/
210 
211     virtual void SAL_CALL advise(	const	UNO3_TYPE&							aType		,
212 									const	UNO3_REFERENCE< UNO3_XINTERFACE >&	xListener	) throw( UNO3_RUNTIMEEXCEPTION );
213 
214 	/**_________________________________________________________________________________________________________
215 		@short
216 		@descr
217 
218 		@seealso
219 
220 		@param
221 
222 		@return
223 
224 		@onerror
225 	*/
226 
227     virtual void SAL_CALL unadvise(	const	UNO3_TYPE&							aType		,
228 									const	UNO3_REFERENCE< UNO3_XINTERFACE >&	xListener	) throw( UNO3_RUNTIMEEXCEPTION );
229 
230 	/**_________________________________________________________________________________________________________
231 		@short
232 		@descr
233 
234 		@seealso
235 
236 		@param
237 
238 		@return
239 
240 		@onerror
241 	*/
242 
243 	UNO3_OMULTITYPEINTERFACECONTAINERHELPER& impl_getMultiTypeContainer();
244 
245 //______________________________________________________________________________________________________________
246 //	private variables
247 //______________________________________________________________________________________________________________
248 
249 private:
250 
251 	UNO3_MUTEX&									m_aSharedMutex			;
252 	UNO3_OMULTITYPEINTERFACECONTAINERHELPER		m_aMultiTypeContainer	;	// Container to hold listener
253 
254 };	// class OConnectionPointContainerHelper
255 
256 }	// namespace unocontrols
257 
258 #endif	// #ifndef _OCONNECTIONPOINTCONTAINERHELPER_HXX
259