Parcourir la source

[5099] Addressed review comments.

Marcin Siodelski il y a 8 ans
Parent
commit
2835b3c54c

+ 2 - 0
src/lib/asiolink/tcp_socket.h

@@ -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

+ 2 - 2
src/lib/http/connection_pool.cc

@@ -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

+ 2 - 2
src/lib/http/connection_pool.h

@@ -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_;
 
 };
 

+ 0 - 3
src/lib/http/response_creator_factory.h

@@ -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.

+ 12 - 5
src/lib/http/tests/connection_pool_unittests.cc

@@ -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));
 }
 
 }