00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <xsec/framework/XSECDefs.hpp>
00028 #include <xsec/transformers/TXFMBase.hpp>
00029
00030 class TXFMChain;
00031
00037 class DSIG_EXPORT TXFMConcatChains : public TXFMBase {
00038
00039 #if defined(XSEC_NO_NAMESPACES)
00040 typedef vector<TXFMChain *> TXFMChainVectorType
00041 #else
00042 typedef std::vector<TXFMChain *> TXFMChainVectorType;
00043 #endif
00044
00045 #if defined(XSEC_SIZE_T_IN_NAMESPACE_STD)
00046 typedef std::size_t size_type;
00047 #else
00048 typedef size_t size_type;
00049 #endif
00050
00051 public:
00052
00053 TXFMConcatChains(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc);
00054 ~TXFMConcatChains();
00055
00056
00057
00058
00059 void setInput(TXFMBase *newInput);
00060 void setInput(TXFMChain *newInputChain);
00061
00062
00063
00064 virtual TXFMBase::ioType getInputType(void);
00065 virtual TXFMBase::ioType getOutputType(void);
00066 virtual TXFMBase::nodeType getNodeType(void);
00067
00068
00069
00070 virtual unsigned int readBytes(XMLByte * const toFill, const unsigned int maxToFill);
00071 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *getDocument();
00072 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getFragmentNode();
00073 virtual const XMLCh * getFragmentId();
00074
00075 private:
00076 TXFMConcatChains();
00077
00078 TXFMChainVectorType m_chains;
00079 TXFMBase * mp_currentTxfm;
00080 size_type m_currentChain;
00081 bool m_complete;
00082 };