]> git.saurik.com Git - apple/security.git/blobdiff - Network/connectionpool.cpp
Security-222.tar.gz
[apple/security.git] / Network / connectionpool.cpp
diff --git a/Network/connectionpool.cpp b/Network/connectionpool.cpp
deleted file mode 100644 (file)
index bea735d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
- * 
- * The contents of this file constitute Original Code as defined in and are
- * subject to the Apple Public Source License Version 1.2 (the 'License').
- * You may not use this file except in compliance with the License. Please obtain
- * a copy of the License at http://www.apple.com/publicsource and read it before
- * using this file.
- * 
- * This Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
- * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
- * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
- * specific language governing rights and limitations under the License.
- */
-
-
-//
-// connectionpool - manage pool of active, unused Connection objects
-//
-#include "connectionpool.h"
-#include "netconnection.h"
-
-
-namespace Security {
-namespace Network {
-
-
-//
-// Try to locate a Connection with a suitable HostTarget from the pool.
-// If found, remove it from the pool and return it. Otherwise, return NULL (no error).
-//
-Connection *ConnectionPool::get(const HostTarget &host)
-{
-    //@@@ locking, of course :-)
-    ConnectionMap::iterator it = mConnections.find(host);
-    if (it != mConnections.end()) {
-        // take it and use it
-        Connection *connection = it->second;
-        mConnections.erase(it);
-        secdebug("connpool", "Connection %p retrieved from pool", connection);
-        return connection;
-    }
-    // none available
-    return NULL;
-}
-
-
-//
-// Retain a Connection in the pool
-//
-void ConnectionPool::retain(Connection *connection)
-{
-    //@@@ threading, of course :-)
-    secdebug("connpool", "Connection %p retained in connection pool", connection);
-    mConnections.insert(ConnectionMap::value_type(connection->hostTarget, connection));
-    //mConnections[connection->hostTarget] = connection;
-}
-
-
-//
-// Remove a retained Connection from the pool.
-// Returns true if found (and removed); false otherwise.
-//
-bool ConnectionPool::remove(Connection *connection)
-{
-    // this search is two-stage to deal with potentially large multimaps
-    typedef ConnectionMap::iterator Iter;
-    pair<Iter, Iter> range = mConnections.equal_range(connection->hostTarget);
-    for (Iter it = range.first; it != range.second; it++)
-        if (it->second == connection) {
-            mConnections.erase(it);
-            secdebug("connpool", "Connection %p removed from connection pool", connection);
-            return true;
-        }
-    return false;
-}
-
-
-//
-// Clear the connection pool
-//
-void ConnectionPool::purge()
-{
-    secdebug("connpool", "Connection pool purging %ld connections", mConnections.size());
-    for (ConnectionMap::iterator it = mConnections.begin(); it != mConnections.end(); it++)
-        delete it->second;
-    mConnections.erase(mConnections.begin(), mConnections.end());
-}
-
-
-}      // end namespace Network
-}      // end namespace Security