]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5099] Addressed review comments.
authorMarcin Siodelski <marcin@isc.org>
Thu, 16 Feb 2017 08:05:58 +0000 (09:05 +0100)
committerMarcin Siodelski <marcin@isc.org>
Thu, 16 Feb 2017 08:05:58 +0000 (09:05 +0100)
src/lib/asiolink/tcp_socket.h
src/lib/http/connection_pool.cc
src/lib/http/connection_pool.h
src/lib/http/response_creator_factory.h
src/lib/http/tests/connection_pool_unittests.cc

index a97739ddef20cea3f34a179c59b7b838ff2f74e8..adf74d1f0f2fc12c3acb3b34fd11d23ce666d149 100644 (file)
@@ -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
index 387a8f255a5f03eae47ab120ae43a8a42d0637c2..e5a7b5d2afae2e2501c7cb5e1dc4839bdbdc25e2 100644 (file)
@@ -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
index 10f3f7990b45a7b67f65983f67a27ebcb75a4a5a..b5c19b0f561231b082fe44332d13ef2faca8941c 100644 (file)
@@ -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_;
 
 };
 
index 3827ebda6525907fe607aa901bfeb0e7f5bbf540..c2fc9178a53fd70ab5768a059026bfdbe99341ff 100644 (file)
@@ -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.
index f68a64cb620309f382743f8843c45d72433c956f..3cf2797e202268545bc193d0b319401be6538c80 100644 (file)
@@ -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));
 }
 
 }