/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace ::rtl; using namespace ::osl; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; using namespace ::com::sun::star::bridge; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::connection; using namespace ::com::sun::star::container; using namespace ::com::sun::star::registry; namespace desktop { class Acceptor : public ::cppu::WeakImplHelper2 { private: static const sal_Char *serviceName; static const sal_Char *implementationName; static const sal_Char *supportedServiceNames[]; static Mutex m_aMutex; oslThread m_thread; comphelper::WeakBag< com::sun::star::bridge::XBridge > m_bridges; Condition m_cEnable; Reference< XMultiServiceFactory > m_rSMgr; Reference< XInterface > m_rContext; Reference< XAcceptor > m_rAcceptor; Reference< XBridgeFactory > m_rBridgeFactory; OUString m_aAcceptString; OUString m_aConnectString; OUString m_aProtocol; sal_Bool m_bInit; bool m_bDying; public: Acceptor( const Reference< XMultiServiceFactory >& aFactory ); virtual ~Acceptor(); void SAL_CALL run(); // XService info static OUString impl_getImplementationName(); virtual OUString SAL_CALL getImplementationName() throw (RuntimeException); static Sequence impl_getSupportedServiceNames(); virtual Sequence SAL_CALL getSupportedServiceNames() throw (RuntimeException); virtual sal_Bool SAL_CALL supportsService( const OUString& aName ) throw (RuntimeException); // XInitialize virtual void SAL_CALL initialize( const Sequence& aArguments ) throw ( Exception ); static Reference impl_getInstance( const Reference< XMultiServiceFactory >& aFactory ); }; class AccInstanceProvider : public ::cppu::WeakImplHelper1 { private: Reference m_rSMgr; Reference m_rConnection; public: AccInstanceProvider(const Reference< XMultiServiceFactory >& aFactory, const Reference< XConnection >& rConnection); virtual ~AccInstanceProvider(); // XInstanceProvider virtual Reference SAL_CALL getInstance (const OUString& aName ) throw ( NoSuchElementException ); }; } //namespace desktop