xref: /AOO41X/main/extensions/test/stm/testfactreg.cxx (revision 2a97ec55f1442d65917e8c8b82a55ab76c9ff676)
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 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_extensions.hxx"
26 #include <string.h>
27 
28 #include <usr/reflserv.hxx>  // for EXTERN_SERVICE_CALLTYPE
29 
30 #include <usr/factoryhlp.hxx>
31 #include "testfactreg.hxx"
32 
33 
34 using namespace vos;
35 using namespace usr;
36 
37 #ifdef __cplusplus
38 extern "C"
39 {
40 #endif
41 
exService_writeRegEntry(const UNO_INTERFACE (XRegistryKey)* xUnoKey)42 BOOL EXTERN_SERVICE_CALLTYPE exService_writeRegEntry(
43         const UNO_INTERFACE(XRegistryKey)* xUnoKey)
44 
45 {
46     XRegistryKeyRef   xKey;
47     uno2smart(xKey, *xUnoKey);
48 
49     UString str = UString( L"/" ) + OPipeTest_getImplementationName() + UString( L"/UNO/SERVICES" );
50     XRegistryKeyRef xNewKey = xKey->createKey( str );
51     xNewKey->createKey( OPipeTest_getServiceName() );
52 
53     str = UString( L"/" ) + ODataStreamTest_getImplementationName(1) + UString( L"/UNO/SERVICES" );
54     xNewKey = xKey->createKey( str );
55     xNewKey->createKey( ODataStreamTest_getServiceName(1) );
56 
57     str = UString( L"/" ) + ODataStreamTest_getImplementationName(2) + UString( L"/UNO/SERVICES" );
58     xNewKey = xKey->createKey( str );
59     xNewKey->createKey( ODataStreamTest_getServiceName(2) );
60 
61     str = UString( L"/" ) + OObjectStreamTest_getImplementationName(1) + UString( L"/UNO/SERVICES" );
62     xNewKey = xKey->createKey( str );
63     xNewKey->createKey( OObjectStreamTest_getServiceName(1) );
64 
65     str = UString( L"/" ) + OObjectStreamTest_getImplementationName(2) + UString( L"/UNO/SERVICES" );
66     xNewKey = xKey->createKey( str );
67     xNewKey->createKey( OObjectStreamTest_getServiceName(2) );
68 
69     str = UString( L"/" ) + OMarkableOutputStreamTest_getImplementationName() + UString( L"/UNO/SERVICES" );
70     xNewKey = xKey->createKey( str );
71     xNewKey->createKey( OMarkableOutputStreamTest_getServiceName() );
72 
73     str = UString( L"/" ) + OMarkableInputStreamTest_getImplementationName() + UString( L"/UNO/SERVICES" );
74     xNewKey = xKey->createKey( str );
75     xNewKey->createKey( OMarkableInputStreamTest_getServiceName() );
76 
77     str = UString( L"/" ) + OMyPersistObject_getImplementationName() + UString( L"/UNO/SERVICES" );
78     xNewKey = xKey->createKey( str );
79     xNewKey->createKey( OMyPersistObject_getServiceName() );
80 
81     return TRUE;
82 }
83 
84 
UNO_INTERFACE(XInterface)85 UNO_INTERFACE(XInterface) EXTERN_SERVICE_CALLTYPE exService_getFactory
86 (
87     const wchar_t* implementationName,
88     const UNO_INTERFACE(XMultiServiceFactory)* xUnoFact,
89     const UNO_INTERFACE(XRegistryKey)*
90 )
91 {
92     UNO_INTERFACE(XInterface) xUnoRet = {0, 0};
93 
94     XInterfaceRef           xRet;
95     XMultiServiceFactoryRef xSMgr;
96     UString                 aImplementationName(implementationName);
97 
98     uno2smart(xSMgr, *xUnoFact);
99 
100     if (aImplementationName == OPipeTest_getImplementationName() )
101     {
102         xRet = createSingleFactory( xSMgr, implementationName,
103                                     OPipeTest_CreateInstance,
104                                     OPipeTest_getSupportedServiceNames() );
105     }
106     else if( aImplementationName == ODataStreamTest_getImplementationName(1) ) {
107         xRet = createSingleFactory( xSMgr , implementationName,
108                                     ODataStreamTest_CreateInstance,
109                                     ODataStreamTest_getSupportedServiceNames(1) );
110     }
111     else if( aImplementationName == ODataStreamTest_getImplementationName(2) ) {
112         xRet = createSingleFactory( xSMgr , implementationName,
113                                     ODataStreamTest_CreateInstance,
114                                     ODataStreamTest_getSupportedServiceNames(2) );
115     }
116     else if( aImplementationName == OObjectStreamTest_getImplementationName(1) ) {
117         xRet = createSingleFactory( xSMgr , implementationName,
118                                     OObjectStreamTest_CreateInstance,
119                                     OObjectStreamTest_getSupportedServiceNames(1) );
120     }
121     else if( aImplementationName == OObjectStreamTest_getImplementationName(2) ) {
122         xRet = createSingleFactory( xSMgr , implementationName,
123                                     OObjectStreamTest_CreateInstance,
124                                     OObjectStreamTest_getSupportedServiceNames(2) );
125     }
126     else if( aImplementationName == OMarkableOutputStreamTest_getImplementationName() ) {
127         xRet = createSingleFactory( xSMgr , implementationName,
128                                     OMarkableOutputStreamTest_CreateInstance,
129                                     OMarkableOutputStreamTest_getSupportedServiceNames() );
130     }
131     else if( aImplementationName == OMarkableInputStreamTest_getImplementationName() ) {
132         xRet = createSingleFactory( xSMgr , implementationName,
133                                     OMarkableInputStreamTest_CreateInstance,
134                                     OMarkableInputStreamTest_getSupportedServiceNames() );
135     }
136     else if( aImplementationName == OMyPersistObject_getImplementationName() ) {
137         xRet = createSingleFactory( xSMgr , implementationName,
138                                     OMyPersistObject_CreateInstance,
139                                     OMyPersistObject_getSupportedServiceNames() );
140     }
141     if (xRet.is())
142     {
143         smart2uno(xRet, xUnoRet);
144     }
145 
146     return xUnoRet;
147 }
148 
149 #ifdef __cplusplus
150 }
151 #endif
152 
createSeq(char * p)153 Sequence<BYTE> createSeq( char * p )
154 {
155     Sequence<BYTE> seq( strlen( p )+1 );
156     strcpy( (char * ) seq.getArray() , p );
157     return seq;
158 }
159 
createIntSeq(INT32 i)160 Sequence<BYTE> createIntSeq( INT32 i )
161 {
162     char pcCount[20];
163     sprintf( pcCount , "%d" , i );
164     return createSeq( pcCount );
165 }
166 
167