/************************************************************** * * 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 INCLUDED_OOXML_STREAM_IMPL_HXX #define INCLUDED_OOXML_STREAM_IMPL_HXX #include #include #include #include namespace writerfilter { namespace ooxml { using namespace com::sun::star; class OOXMLStreamImpl : public OOXMLStream { void init() throw (uno::Exception); uno::Reference mxContext; uno::Reference mxStorageStream; uno::Reference mxStorage; uno::Reference mxRelationshipAccess; uno::Reference mxDocumentStream; uno::Reference mxFastParser; uno::Reference mxFastTokenHandler; StreamType_t mnStreamType; rtl::OUString msId; rtl::OUString msPath; rtl::OUString msTarget; bool lcl_getTarget(uno::Reference xRelationshipAccess, StreamType_t nStreamType, const ::rtl::OUString & rId, ::rtl::OUString & rDocumentTarget); public: typedef boost::shared_ptr Pointer_t; OOXMLStreamImpl (OOXMLStreamImpl & rStream, StreamType_t nType) throw (uno::Exception); OOXMLStreamImpl (uno::Reference xContext, uno::Reference xStorageStream, StreamType_t nType) throw (uno::Exception); OOXMLStreamImpl(OOXMLStreamImpl & rStream, const rtl::OUString & rId) throw (uno::Exception); virtual ~OOXMLStreamImpl(); virtual uno::Reference getParser(); virtual uno::Reference getFastParser(); virtual uno::Reference getDocumentStream(); virtual uno::Reference getStorageStream(); virtual uno::Reference getContext(); virtual ::rtl::OUString getTargetForId(const ::rtl::OUString & rId); virtual const ::rtl::OUString & getTarget() const; virtual uno::Reference getFastTokenHandler(uno::Reference rContext); void setInputStream(uno::Reference rxInputStream); }; }} #endif // INCLUDED_OOXML_STREAM_IMPL_HXX