/usr/include/xsec/utils/XSECBinTXFMInputStream.hpp is in libxml-security-c-dev 1.7.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | /**
* 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.
*/
/*
* XSEC
*
* XSECBinTXFMInputStream := Implement the BinInputStream around Transforms.
*
* Author(s): Berin Lautenbach
*
* $ID$
*
* $LOG$
*
*/
#ifndef XSECBINTXFMINPUTSTREAM_INCLUDE
#define XSECBINTXFMINPUTSTREAM_INCLUDE
#include <xsec/framework/XSECDefs.hpp>
#include <xercesc/util/BinInputStream.hpp>
class TXFMChain;
class TXFMBase;
/**
* @defgroup interfaces Classes that interface applications to XML Security C.
*
* These classes and files provide interfaces to allow the XSEC library to link
* to other libraries or to allow other libraries/applications to interface
* to XSEC.
* @{
*/
/**
* @brief BinInputSource wrapper for a TXFMChain.
*
* This class provides a wrapper for a TXFMChain. It can be used to either provide
* a nice interface to applications wishing to read the BYTESTREAM output of a
* TXFM chain, or, as it is derived from BinInputStream, provide an input to the
* Xerces Parser.
*
*/
class DSIG_EXPORT XSECBinTXFMInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream
{
public :
/** @name Constructors and Destructors */
//@{
/**
* \brief Construct around an existing transform list
*
* @param lst The input TXFM chain.
* @param deleteWhenDone Flag to instruct the class to delete the chain when
* done. By default set to true.
*/
XSECBinTXFMInputStream(TXFMChain * lst, bool deleteWhenDone = true);
/**
* \brief Destructor
*
* Delete the object. If deleteWhenDone was set during construction, will
* delete the chain if it has not already been done.
*/
virtual ~XSECBinTXFMInputStream();
//@}
/** @name Stream management methods */
//@{
/**
* \brief Reset the stream.
*
* @note At this time simply deletes the TXFM chain - many TXFMs do not
* have an ability to reset.
*/
void reset();
//@}
/** @name Interface */
//@{
/**
* \brief Current position in stream.
*
* @returns Bytes already returned.
*/
#ifdef XSEC_XERCES_64BITSAFE
virtual XMLFilePos curPos() const;
#else
virtual unsigned int curPos() const;
#endif
/**
* \brief Retrieve the required number of bytes and return
*
* Retrieve up to the requested number of bytes. Does not always
* retrieve as much as requested, but will always retrieve something
* until completed.
*
* @note When complete, will return 0 and delete the TXFM chain if
* requested to do so in the constructor.
* @param toFill The buffer that will be read into.
* @param maxToRead Maximum number of bytes to return
* @returns The number of bytes read or 0 if complete.
*/
virtual xsecsize_t readBytes(XMLByte* const toFill,
const xsecsize_t maxToRead);
#ifdef XSEC_XERCES_INPUTSTREAM_HAS_CONTENTTYPE
const XMLCh* getContentType() const;
#endif
private :
TXFMBase * mp_txfm; // End point of list
TXFMChain * mp_chain; // The actual chain
bool m_deleteWhenDone; // Do we delete?
bool m_deleted; // Have we deleted?
bool m_done; // Are we done?
xsecsize_t m_currentIndex; // How much read?
};
#endif
|