/************************************************************** * * 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. * *************************************************************/ #ifndef __FRAMEWORK_ACCELERATORS_DOCUMENTACCELERATORCONFIGURATION_HXX_ #define __FRAMEWORK_ACCELERATORS_DOCUMENTACCELERATORCONFIGURATION_HXX_ //__________________________________________ // own includes #include #include #include #include #include #include //__________________________________________ // interface includes #include #include //__________________________________________ // other includes //__________________________________________ // definition namespace framework { //__________________________________________ /** implements a read/write access to a document based accelerator configuration. */ class DocumentAcceleratorConfiguration : public XMLBasedAcceleratorConfiguration , public css::lang::XServiceInfo , public css::lang::XInitialization // , public css::ui::XUIConfigurationStorage { //______________________________________ // member private: //---------------------------------- /** points to the root storage of the outside document, where we can read/save our configuration data. */ css::uno::Reference< css::embed::XStorage > m_xDocumentRoot; //______________________________________ // interface public: //---------------------------------- /** initialize this instance and fill the internal cache. @param xSMGR reference to an uno service manager, which is used internally. */ DocumentAcceleratorConfiguration(const css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR); virtual ~DocumentAcceleratorConfiguration(); // XInterface, XTypeProvider, XServiceInfo FWK_DECLARE_XINTERFACE FWK_DECLARE_XTYPEPROVIDER DECLARE_XSERVICEINFO // XInitialization virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any >& lArguments) throw(css::uno::Exception , css::uno::RuntimeException); // XUIConfigurationStorage virtual void SAL_CALL setStorage(const css::uno::Reference< css::embed::XStorage >& xStorage) throw(css::uno::RuntimeException); virtual sal_Bool SAL_CALL hasStorage() throw(css::uno::RuntimeException); //______________________________________ // helper private: //---------------------------------- /** read all data into the cache. */ void impl_ts_fillCache(); //---------------------------------- /** forget all currently cached data AND(!) forget all currently used storages. */ void impl_ts_clearCache(); }; } // namespace framework #endif // __FRAMEWORK_ACCELERATORS_DOCUMENTACCELERATORCONFIGURATION_HXX_