This file is indexed.

/usr/include/Poco/Redis/PoolableConnectionFactory.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
//
// PoolableConnectionFactory.h
//
// Library: Redis
// Package: Redis
// Module:  PoolableConnectionFactory
//
// Definition of the PoolableConnectionFactory class.
//
// Copyright (c) 2015, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier:	BSL-1.0
//


#ifndef Redis_PoolableConnectionFactory_INCLUDED
#define Redis_PoolableConnectionFactory_INCLUDED


#include "Poco/Redis/Client.h"
#include "Poco/ObjectPool.h"
#include "Poco/Version.h"


namespace Poco {


template<>
class PoolableObjectFactory<Redis::Client, Redis::Client::Ptr>
	/// PoolableObjectFactory specialisation for Client. New connections
	/// are created with the given address.
{
public:
	PoolableObjectFactory(Net::SocketAddress& address):
		_address(address)
	{
	}

	PoolableObjectFactory(const std::string& address):
		_address(address)
	{
	}

	Redis::Client::Ptr createObject()
	{
		return new Redis::Client(_address);
	}

	bool validateObject(Redis::Client::Ptr pObject)
	{
		return true;
	}

	void activateObject(Redis::Client::Ptr pObject)
	{
	}

	void deactivateObject(Redis::Client::Ptr pObject)
	{
	}

	void destroyObject(Redis::Client::Ptr pObject)
	{
	}

private:
	Net::SocketAddress _address;
};


namespace Redis {


class PooledConnection
	/// Helper class for borrowing and returning a connection automatically from a pool.
{
public:
	PooledConnection(ObjectPool<Client, Client::Ptr>& pool, long timeoutMilliseconds = 0) : _pool(pool)
	{
#if POCO_VERSION >= 0x01080000
		_client = _pool.borrowObject(timeoutMilliseconds);
#else
		_client = _pool.borrowObject();
#endif
	}

	virtual ~PooledConnection()
	{
		try
		{
			_pool.returnObject(_client);
		}
		catch (...)
		{
			poco_unexpected();
		}
	}

	operator Client::Ptr()
	{
		return _client;
	}

private:
	ObjectPool<Client, Client::Ptr>& _pool;
	Client::Ptr _client;
};


} } // namespace Poco::Redis


#endif // Redis_PoolableConnectionFactory_INCLUDED