Warning, file /office/calligra/libs/main/KoFilterChainLink.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* This file is part of the Calligra libraries
0002    Copyright (C) 2001 Werner Trobin <trobin@kde.org>
0003 
0004 This library is free software; you can redistribute it and/or
0005 modify it under the terms of the GNU Library General Public
0006 License as published by the Free Software Foundation; either
0007 version 2 of the License, or (at your option) any later version.
0008 
0009 This library is distributed in the hope that it will be useful,
0010 but WITHOUT ANY WARRANTY; without even the implied warranty of
0011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012 Library General Public License for more details.
0013 
0014 You should have received a copy of the GNU Library General Public License
0015 along with this library; see the file COPYING.LIB.  If not, write to
0016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017 Boston, MA 02110-1301, USA.
0018 */
0019 #ifndef KOFILTERCHAINLINK_H
0020 #define KOFILTERCHAINLINK_H
0021 
0022 #include <KoFilterChain.h>
0023 
0024 class QByteArray;
0025 class KoUpdater;
0026 
0027 namespace CalligraFilter {
0028 
0029 /**
0030  * A small private helper class with represents one single filter
0031  * (one link of the chain)
0032  * @internal
0033  */
0034 class ChainLink
0035 {
0036 
0037 public:
0038     ChainLink(KoFilterChain *chain, KoFilterEntry::Ptr filterEntry,
0039               const QByteArray& from, const QByteArray& to);
0040 
0041     ~ChainLink();
0042 
0043     KoFilter::ConversionStatus invokeFilter(const ChainLink * const parentChainLink);
0044 
0045     QByteArray from() const {
0046         return m_from;
0047     }
0048     QByteArray to() const {
0049         return m_to;
0050     }
0051 
0052     // debugging
0053     void dump() const;
0054 
0055     QPointer<KoUpdater> updater() const {
0056         return m_updater;
0057     }
0058 
0059 private:
0060     ChainLink(const ChainLink& rhs);
0061     ChainLink& operator=(const ChainLink& rhs);
0062 
0063     void setupCommunication(const KoFilter * const parentFilter) const;
0064     void setupConnections(const KoFilter *sender, const KoFilter *receiver) const;
0065 
0066     KoFilterChain *m_chain;
0067     KoFilterEntry::Ptr m_filterEntry;
0068     QByteArray m_from, m_to;
0069 
0070     // This hack is only needed due to crappy Microsoft design and
0071     // circular dependencies in their embedded files :}
0072     KoFilter *m_filter;
0073 
0074     QPointer<KoUpdater> const m_updater;
0075 };
0076 
0077 }
0078 #endif // KOFILTERCHAINLINK_H