Commit 2835b3c5 authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[5099] Addressed review comments.

parent cbc30863
......@@ -110,6 +110,7 @@ public:
/// \param endpoint Target of the send. (Unused for a TCP socket because
/// that was determined when the connection was opened.)
/// \param callback Callback object.
/// \throw BufferTooLarge on attempt to send a buffer larger than 64kB.
virtual void asyncSend(const void* data, size_t length,
const IOEndpoint* endpoint, C& callback);
......@@ -124,6 +125,7 @@ public:
/// \param data Data to send
/// \param length Length of data to send
/// \param callback Callback object.
/// \throw BufferTooLarge on attempt to send a buffer larger than 64kB.
void asyncSend(const void* data, size_t length, C& callback);
/// \brief Receive Asynchronously
......
......@@ -12,13 +12,13 @@ namespace http {
void
HttpConnectionPool::start(const HttpConnectionPtr& connection) {
connections_.insert(connection);
connections_.insert(connections_.end(), connection);
connection->asyncAccept();
}
void
HttpConnectionPool::stop(const HttpConnectionPtr& connection) {
connections_.erase(connection);
connections_.remove(connection);
}
void
......
......@@ -8,7 +8,7 @@
#define HTTP_CONNECTION_POOL_H
#include <http/connection.h>
#include <set>
#include <list>
namespace isc {
namespace http {
......@@ -49,7 +49,7 @@ public:
protected:
/// @brief Set of connections.
std::set<HttpConnectionPtr> connections_;
std::list<HttpConnectionPtr> connections_;
};
......
......@@ -36,9 +36,6 @@ class HttpResponseCreatorFactory {
public:
/// @brief Virtual destructor.
///
/// The implementation doesn't need to declare virtual destructor because
/// it is already implemented here.
virtual ~HttpResponseCreatorFactory() { }
/// @brief Returns an instance of the @ref HttpResponseCreator.
......
......@@ -16,6 +16,7 @@
#include <http/tests/response_test.h>
#include <boost/shared_ptr.hpp>
#include <gtest/gtest.h>
#include <algorithm>
using namespace isc::asiolink;
using namespace isc::http;
......@@ -81,6 +82,12 @@ public:
using HttpConnectionPool::connections_;
/// @brief Checks if specified connection belongs to the pool.
bool hasConnection(const HttpConnectionPtr& conn) const {
return (std::find(connections_.begin(), connections_.end(), conn)
!= connections_.end());
}
};
/// @brief Test fixture class for @ref HttpConnectionPool.
......@@ -120,19 +127,19 @@ TEST_F(HttpConnectionPoolTest, startStop) {
// Start first connection and check that it has been added to the pool.
ASSERT_NO_THROW(pool.start(conn1));
ASSERT_EQ(1, pool.connections_.size());
ASSERT_EQ(1, pool.connections_.count(conn1));
ASSERT_EQ(1, pool.hasConnection(conn1));
// Start second connection and check that it also has been added.
ASSERT_NO_THROW(pool.start(conn2));
ASSERT_EQ(2, pool.connections_.size());
ASSERT_EQ(1, pool.connections_.count(conn2));
ASSERT_EQ(1, pool.hasConnection(conn2));
// Stop first connection.
ASSERT_NO_THROW(pool.stop(conn1));
ASSERT_EQ(1, pool.connections_.size());
// Check that it has been removed but the second connection is still there.
ASSERT_EQ(0, pool.connections_.count(conn1));
ASSERT_EQ(1, pool.connections_.count(conn2));
ASSERT_EQ(0, pool.hasConnection(conn1));
ASSERT_EQ(1, pool.hasConnection(conn2));
// Remove second connection and verify.
ASSERT_NO_THROW(pool.stop(conn2));
......@@ -179,7 +186,7 @@ TEST_F(HttpConnectionPoolTest, stopInvalid) {
ASSERT_NO_THROW(pool.start(conn1));
ASSERT_NO_THROW(pool.stop(conn2));
ASSERT_EQ(1, pool.connections_.size());
ASSERT_EQ(1, pool.connections_.count(conn1));
ASSERT_EQ(1, pool.hasConnection(conn1));
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment