summaryrefslogtreecommitdiffstats
path: root/net/curvecp/server_packetizer.h
diff options
context:
space:
mode:
authorgene@chromium.org <gene@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-17 21:01:32 +0000
committergene@chromium.org <gene@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-17 21:01:32 +0000
commit534661ed756d216ac53a1912804b38fb85bd3daf (patch)
treee34c0789988a37d0621582ee193aba38607df251 /net/curvecp/server_packetizer.h
parenta724cebd7a83c0cd0a5c71c6981e28bf5ab0cc44 (diff)
downloadchromium_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.h97
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_