xref: /AOO42X/main/extensions/source/mozbootstrap/MMozillaBootstrap.hxx (revision 6a653daf547bf214fb4de2c36d40fe4aeaef2f20)
1*6a653dafSJuergen Schmidt /**************************************************************
2*6a653dafSJuergen Schmidt  *
3*6a653dafSJuergen Schmidt  * Licensed to the Apache Software Foundation (ASF) under one
4*6a653dafSJuergen Schmidt  * or more contributor license agreements.  See the NOTICE file
5*6a653dafSJuergen Schmidt  * distributed with this work for additional information
6*6a653dafSJuergen Schmidt  * regarding copyright ownership.  The ASF licenses this file
7*6a653dafSJuergen Schmidt  * to you under the Apache License, Version 2.0 (the
8*6a653dafSJuergen Schmidt  * "License"); you may not use this file except in compliance
9*6a653dafSJuergen Schmidt  * with the License.  You may obtain a copy of the License at
10*6a653dafSJuergen Schmidt  *
11*6a653dafSJuergen Schmidt  *   http://www.apache.org/licenses/LICENSE-2.0
12*6a653dafSJuergen Schmidt  *
13*6a653dafSJuergen Schmidt  * Unless required by applicable law or agreed to in writing,
14*6a653dafSJuergen Schmidt  * software distributed under the License is distributed on an
15*6a653dafSJuergen Schmidt  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*6a653dafSJuergen Schmidt  * KIND, either express or implied.  See the License for the
17*6a653dafSJuergen Schmidt  * specific language governing permissions and limitations
18*6a653dafSJuergen Schmidt  * under the License.
19*6a653dafSJuergen Schmidt  *
20*6a653dafSJuergen Schmidt  *************************************************************/
21*6a653dafSJuergen Schmidt 
22*6a653dafSJuergen Schmidt 
23*6a653dafSJuergen Schmidt #ifndef _SMOZILLABOOTSTRAP_HXX
24*6a653dafSJuergen Schmidt #define _SMOZILLABOOTSTRAP_HXX
25*6a653dafSJuergen Schmidt 
26*6a653dafSJuergen Schmidt #include <com/sun/star/mozilla/XMozillaBootstrap.hpp>
27*6a653dafSJuergen Schmidt #include <com/sun/star/lang/XServiceInfo.hpp>
28*6a653dafSJuergen Schmidt #include <cppuhelper/compbase2.hxx>
29*6a653dafSJuergen Schmidt #include <osl/module.h>
30*6a653dafSJuergen Schmidt 
31*6a653dafSJuergen Schmidt 
32*6a653dafSJuergen Schmidt #define MOZAB_MozillaBootstrap_IMPL_NAME "com.sun.star.comp.mozilla.MozillaBootstrap"
33*6a653dafSJuergen Schmidt 
34*6a653dafSJuergen Schmidt namespace connectivity
35*6a653dafSJuergen Schmidt {
36*6a653dafSJuergen Schmidt     namespace mozab
37*6a653dafSJuergen Schmidt     {
38*6a653dafSJuergen Schmidt         typedef ::cppu::WeakComponentImplHelper2<    ::com::sun::star::mozilla::XMozillaBootstrap,
39*6a653dafSJuergen Schmidt                                                     ::com::sun::star::lang::XServiceInfo > OMozillaBootstrap_BASE;
40*6a653dafSJuergen Schmidt         class ProfileAccess;
41*6a653dafSJuergen Schmidt         class ProfileManager;
42*6a653dafSJuergen Schmidt         class MozillaBootstrap : public OMozillaBootstrap_BASE
43*6a653dafSJuergen Schmidt         {
44*6a653dafSJuergen Schmidt         protected:
45*6a653dafSJuergen Schmidt             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xMSFactory;
46*6a653dafSJuergen Schmidt 
47*6a653dafSJuergen Schmidt             ::osl::Mutex                m_aMutex;        // mutex is need to control member access
48*6a653dafSJuergen Schmidt             virtual ~MozillaBootstrap();
49*6a653dafSJuergen Schmidt         protected:
50*6a653dafSJuergen Schmidt             ProfileAccess * m_ProfileAccess;
51*6a653dafSJuergen Schmidt             ProfileManager    * m_ProfileManager;
52*6a653dafSJuergen Schmidt         public:
53*6a653dafSJuergen Schmidt 
54*6a653dafSJuergen Schmidt             void Init();
55*6a653dafSJuergen Schmidt             MozillaBootstrap(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory);
56*6a653dafSJuergen Schmidt 
57*6a653dafSJuergen Schmidt             // OComponentHelper
58*6a653dafSJuergen Schmidt             virtual void SAL_CALL disposing(void);
59*6a653dafSJuergen Schmidt             // XInterface
60*6a653dafSJuergen Schmidt             static ::rtl::OUString getImplementationName_Static(  ) throw(::com::sun::star::uno::RuntimeException);
61*6a653dafSJuergen Schmidt             static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(  ) throw (::com::sun::star::uno::RuntimeException);
62*6a653dafSJuergen Schmidt 
63*6a653dafSJuergen Schmidt             // XServiceInfo
64*6a653dafSJuergen Schmidt             virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
65*6a653dafSJuergen Schmidt             virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
66*6a653dafSJuergen Schmidt             virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
67*6a653dafSJuergen Schmidt 
68*6a653dafSJuergen Schmidt             // XMozillaBootstrap
69*6a653dafSJuergen Schmidt 
70*6a653dafSJuergen Schmidt             // XProfileDiscover
71*6a653dafSJuergen Schmidt             virtual ::sal_Int32 SAL_CALL getProfileCount( ::com::sun::star::mozilla::MozillaProductType product) throw (::com::sun::star::uno::RuntimeException);
72*6a653dafSJuergen Schmidt             virtual ::sal_Int32 SAL_CALL getProfileList( ::com::sun::star::mozilla::MozillaProductType product, ::com::sun::star::uno::Sequence< ::rtl::OUString >& list ) throw (::com::sun::star::uno::RuntimeException);
73*6a653dafSJuergen Schmidt             virtual ::rtl::OUString SAL_CALL getDefaultProfile( ::com::sun::star::mozilla::MozillaProductType product ) throw (::com::sun::star::uno::RuntimeException);
74*6a653dafSJuergen Schmidt             virtual ::rtl::OUString SAL_CALL getProfilePath( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
75*6a653dafSJuergen Schmidt             virtual ::sal_Bool SAL_CALL isProfileLocked( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
76*6a653dafSJuergen Schmidt             virtual ::sal_Bool SAL_CALL getProfileExists( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
77*6a653dafSJuergen Schmidt 
78*6a653dafSJuergen Schmidt             // XProfileManager
79*6a653dafSJuergen Schmidt             virtual ::sal_Int32 SAL_CALL bootupProfile( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
80*6a653dafSJuergen Schmidt             virtual ::sal_Int32 SAL_CALL shutdownProfile(  ) throw (::com::sun::star::uno::RuntimeException);
81*6a653dafSJuergen Schmidt             virtual ::com::sun::star::mozilla::MozillaProductType SAL_CALL getCurrentProduct(  ) throw (::com::sun::star::uno::RuntimeException);
82*6a653dafSJuergen Schmidt             virtual ::rtl::OUString SAL_CALL getCurrentProfile(  ) throw (::com::sun::star::uno::RuntimeException);
83*6a653dafSJuergen Schmidt             virtual ::sal_Bool SAL_CALL isCurrentProfileLocked(  ) throw (::com::sun::star::uno::RuntimeException);
84*6a653dafSJuergen Schmidt             virtual ::rtl::OUString SAL_CALL setCurrentProfile( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
85*6a653dafSJuergen Schmidt 
86*6a653dafSJuergen Schmidt             // XProxyRunner
87*6a653dafSJuergen Schmidt             virtual ::sal_Int32 SAL_CALL Run( const ::com::sun::star::uno::Reference< ::com::sun::star::mozilla::XCodeProxy >& aCode ) throw (::com::sun::star::uno::RuntimeException);
88*6a653dafSJuergen Schmidt 
89*6a653dafSJuergen Schmidt             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
getMSFactory(void) const90*6a653dafSJuergen Schmidt                         & getMSFactory(void) const { return m_xMSFactory; }
91*6a653dafSJuergen Schmidt 
92*6a653dafSJuergen Schmidt         };
93*6a653dafSJuergen Schmidt     }
94*6a653dafSJuergen Schmidt 
95*6a653dafSJuergen Schmidt }
96*6a653dafSJuergen Schmidt 
97*6a653dafSJuergen Schmidt #endif // _SMozillaBootstrap_HXX
98