1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 */ 9 10 // Simple interface to allow serialization of document settings 11 12 #ifndef INCLUDED_XMLOFF_SETTINGSSTORE_HXX 13 #define INCLUDED_XMLOFF_SETTINGSSTORE_HXX 14 15 #include <com/sun/star/uno/Sequence.hxx> 16 17 namespace com::sun::star::beans { struct PropertyValue; } 18 namespace com::sun::star::embed { class XStorage; } 19 namespace com::sun::star::uno { template <typename > class Reference; } 20 21 // Scans list of properties for certain URL properties that could refer 22 // to internal objects, and initializes from these. 23 class SAL_DLLPUBLIC_RTTI DocumentSettingsSerializer { 24 public: 25 // Import objects and update properties (eliding URLs) 26 virtual css::uno::Sequence<css::beans::PropertyValue> 27 filterStreamsFromStorage( 28 OUString const & referer, 29 const css::uno::Reference< css::embed::XStorage > &xStorage, 30 const css::uno::Sequence<css::beans::PropertyValue>& aConfigProps ) = 0; 31 // Export objects and update properties with relative URLs into this storage 32 virtual css::uno::Sequence<css::beans::PropertyValue> 33 filterStreamsToStorage( 34 const css::uno::Reference< css::embed::XStorage > &xStorage, 35 const css::uno::Sequence<css::beans::PropertyValue>& aConfigProps ) = 0; 36 37 protected: ~DocumentSettingsSerializer()38 ~DocumentSettingsSerializer() {} 39 }; 40 41 #endif // INCLUDED_XMLOFF_SETTINGSSTORE_HXX 42 43 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 44