This file is indexed.

/usr/include/Poco/Data/LOBStream.h is in libpoco-dev 1.8.0.1-1ubuntu4.

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
//
// LOBStream.h
//
// Library: Data
// Package: DataCore
// Module:  LOBStream
//
// Definition of the LOBStream class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier:	BSL-1.0
//


#ifndef Data_LOBStream_INCLUDED
#define Data_LOBStream_INCLUDED


#include "Poco/Foundation.h"
#include "Poco/UnbufferedStreamBuf.h"
#include "Poco/Data/LOB.h"
#include <istream>
#include <ostream>


namespace Poco {
namespace Data {


template <typename T>
class LOBStreamBuf: public BasicUnbufferedStreamBuf<T, std::char_traits<T> >
	/// This is the streambuf class used for reading from and writing to a LOB.
{
public:	
	LOBStreamBuf(LOB<T>& lob): _lob(lob), _it(_lob.begin())
		/// Creates LOBStreamBuf.
	{
	}


	~LOBStreamBuf()
		/// Destroys LOBStreamBuf.
	{
	}

protected:
	typedef std::char_traits<T> TraitsType;
	typedef BasicUnbufferedStreamBuf<T, TraitsType> BaseType;

	typename BaseType::int_type readFromDevice()
	{
		if (_it != _lob.end())
			return BaseType::charToInt(*_it++);
		else
			return -1;
	}

	typename BaseType::int_type writeToDevice(T c)
	{
		_lob.appendRaw(&c, 1);
		return 1;
	}

private:
	LOB<T>& _lob;
	typename LOB<T>::Iterator _it;
};


template <typename T>
class LOBIOS: public virtual std::ios
	/// The base class for LOBInputStream and
	/// LOBOutputStream.
	///
	/// This class is needed to ensure the correct initialization
	/// order of the stream buffer and base classes.
{
public:
	LOBIOS(LOB<T>& lob, openmode mode): _buf(lob)
		/// Creates the LOBIOS with the given LOB.
	{
		poco_ios_init(&_buf);
	}

	~LOBIOS()
		/// Destroys the LOBIOS.
	{
	}

	LOBStreamBuf<T>* rdbuf()
		/// Returns a pointer to the internal LOBStreamBuf.
	{
		return &_buf;
	}

protected:
	LOBStreamBuf<T> _buf;
};


template <typename T>
class LOBOutputStream: public LOBIOS<T>, public std::basic_ostream<T, std::char_traits<T> >
	/// An output stream for writing to a LOB.
{
public:
	LOBOutputStream(LOB<T>& lob):
		LOBIOS<T>(lob, std::ios::out),
		std::ostream(LOBIOS<T>::rdbuf())
		/// Creates the LOBOutputStream with the given LOB.
	{
	}

	~LOBOutputStream()
		/// Destroys the LOBOutputStream.
	{
	}
};


template <typename T>
class LOBInputStream: public LOBIOS<T>, public std::basic_istream<T, std::char_traits<T> >
	/// An input stream for reading from a LOB.
{
public:
	LOBInputStream(LOB<T>& lob):
		LOBIOS<T>(lob, std::ios::in),
		std::istream(LOBIOS<T>::rdbuf())
		/// Creates the LOBInputStream with the given LOB.
	{
	}

	~LOBInputStream()
		/// Destroys the LOBInputStream.
	{
	}
};


typedef LOBOutputStream<unsigned char> BLOBOutputStream;
typedef LOBOutputStream<char> CLOBOutputStream;

typedef LOBInputStream<unsigned char> BLOBInputStream;
typedef LOBInputStream<char> CLOBInputStream;

} } // namespace Poco::Data


#endif // Data_LOBStream_INCLUDED