TCPSocketMap.h

Go to the documentation of this file.
00001 //
00002 // Copyright (C) 2004 Andras Varga
00003 //
00004 // This program is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public License
00006 // as published by the Free Software Foundation; either version 2
00007 // of the License, or (at your option) any later version.
00008 //
00009 // This program is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU Lesser General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU Lesser General Public License
00015 // along with this program; if not, see <http://www.gnu.org/licenses/>.
00016 //
00017 
00018 
00019 #ifndef __INET_TCPSOCKETMAP_H
00020 #define __INET_TCPSOCKETMAP_H
00021 
00022 
00023 #include <map>
00024 #include <omnetpp.h>
00025 #include "TCPSocket.h"
00026 
00027 
00031 //TBD: need for lookup could be eliminated by adding a void *yourPtr into TCPConnection and TCPCommand
00032 class INET_API TCPSocketMap
00033 {
00034   protected:
00035     typedef std::map<int,TCPSocket*> SocketMap;
00036     SocketMap socketMap;
00037   public:
00041     TCPSocketMap() {}
00042 
00046     ~TCPSocketMap() {}
00047 
00055     TCPSocket *findSocketFor(cMessage *msg);
00056 
00061     void addSocket(TCPSocket *socket);
00062 
00066     TCPSocket *removeSocket(TCPSocket *socket);
00067 
00071     unsigned int size() {return socketMap.size();}
00072 
00076     void deleteSockets();
00077 };
00078 
00079 #endif
00080 
00081