diff options
author | gene@chromium.org <gene@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-17 21:01:32 +0000 |
---|---|---|
committer | gene@chromium.org <gene@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-17 21:01:32 +0000 |
commit | 534661ed756d216ac53a1912804b38fb85bd3daf (patch) | |
tree | e34c0789988a37d0621582ee193aba38607df251 /net/curvecp/server_packetizer.h | |
parent | a724cebd7a83c0cd0a5c71c6981e28bf5ab0cc44 (diff) | |
download | chromium_src-534661ed756d216ac53a1912804b38fb85bd3daf.zip chromium_src-534661ed756d216ac53a1912804b38fb85bd3daf.tar.gz chromium_src-534661ed756d216ac53a1912804b38fb85bd3daf.tar.bz2 |
Revert 85667 - An initial curvecp implementation. This code is not complete, but does
have a basic unittest. Crypto code is not yet implemented.
Landing so that we can collaborate on this more.
BUG=none
TEST=curvecp_unittests
Review URL: http://codereview.chromium.org/7039014
TBR=mbelshe@google.com
Review URL: http://codereview.chromium.org/7019019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85674 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/curvecp/server_packetizer.h')
-rw-r--r-- | net/curvecp/server_packetizer.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/net/curvecp/server_packetizer.h b/net/curvecp/server_packetizer.h deleted file mode 100644 index 2fa60c7..0000000 --- a/net/curvecp/server_packetizer.h +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef NET_CURVECP_SERVER_PACKETIZER_H_ -#define NET_CURVECP_SERVER_PACKETIZER_H_ -#pragma once - -#include <map> - -#include "base/memory/ref_counted.h" -#include "net/base/completion_callback.h" -#include "net/base/ip_endpoint.h" -#include "net/curvecp/packetizer.h" -#include "net/curvecp/protocol.h" - -namespace net { - -class IOBuffer; -class IPEndPoint; -class UDPServerSocket; - -class ServerPacketizer : public base::RefCounted<ServerPacketizer>, - public Packetizer { - public: - ServerPacketizer(); - virtual ~ServerPacketizer(); - - // Listen for new connections from the Packetizer. - int Listen(const IPEndPoint& endpoint, Packetizer::Listener* listener); - - // Register a listener for a connection. - // To revoke the registration, call Close(). - bool Open(ConnectionKey key, Packetizer::Listener* listener); - - // Packetizer methods - virtual int SendMessage(ConnectionKey key, - const char* data, - size_t length, - CompletionCallback* callback); - virtual void Close(ConnectionKey key); - virtual int GetPeerAddress(IPEndPoint* endpoint) const; - virtual int max_message_payload() const; - - private: - enum State { - NONE, // The initial state, before listen. - LISTENING, // Listening for packets. - }; - - typedef std::map<ConnectionKey, Packetizer::Listener*> ListenerMap; - typedef std::map<ConnectionKey, IPEndPoint> ConnectionMap; - - // Callbacks when an internal IO is completed. - void OnReadComplete(int result); - void OnWriteComplete(int result); - - // Process the result of a Read operation. - void ProcessRead(int bytes_read); - - // Read packets until an error occurs. - int ReadPackets(); - - // Handlers for recognized packets. - void HandleHelloPacket(Packet* packet, int length); - void HandleInitiatePacket(Packet* packet, int length); - void HandleClientMessagePacket(Packet* packet, int length); - void HandleMessage(ConnectionKey key, unsigned char* message, int length); - - // Manage the list of known "connections". - void AddConnection(ConnectionKey key, const IPEndPoint& endpoint); - // TODO(mbelshe): need to trim out aged/idle connections - void RemoveConnection(ConnectionKey key); - bool IsActiveConnection(ConnectionKey key); - - State state_; - scoped_ptr<UDPServerSocket> socket_; - Packetizer::Listener* listener_; // Accept listener. - - scoped_refptr<IOBuffer> read_buffer_; - IPEndPoint recv_address_; - - // The connection map tracks active client addresses which are known - // to this server. - ConnectionMap connection_map_; - // The listener map tracks active message listeners known to the packetizer. - ListenerMap listener_map_; - - CompletionCallbackImpl<ServerPacketizer> read_callback_; - CompletionCallbackImpl<ServerPacketizer> write_callback_; - - DISALLOW_COPY_AND_ASSIGN(ServerPacketizer); -}; - -} // namespace net - -#endif // NET_CURVECP_SERVER_PACKETIZER_H_ |