Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: ppapi/shared_impl/ppb_tcp_socket_shared.h

Issue 24195004: PPB_TCPSocket: add support for TCP server socket operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/proxy/tcp_socket_resource_base.cc ('k') | ppapi/shared_impl/ppb_tcp_socket_shared.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/shared_impl/ppb_tcp_socket_shared.h
diff --git a/ppapi/shared_impl/ppb_tcp_socket_shared.h b/ppapi/shared_impl/ppb_tcp_socket_shared.h
new file mode 100644
index 0000000000000000000000000000000000000000..c723bdc6e18d6eeec453c61dacca9f3b9897bc6e
--- /dev/null
+++ b/ppapi/shared_impl/ppb_tcp_socket_shared.h
@@ -0,0 +1,74 @@
+// Copyright 2013 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 PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
+#define PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
+
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+class PPAPI_SHARED_EXPORT TCPSocketState {
+ public:
+ enum StateType {
+ // The socket hasn't been bound or connected.
+ INITIAL,
+ // The socket has been bound.
+ BOUND,
+ // A connection has been established.
+ CONNECTED,
+ // An SSL connection has been established.
+ SSL_CONNECTED,
+ // The socket is listening.
+ LISTENING,
+ // The socket has been closed.
+ CLOSED
+ };
+
+ // Transitions that will change the socket state. Please note that
+ // read/write/accept are not included because they don't change the socket
+ // state.
+ enum TransitionType {
+ NONE,
+ BIND,
+ CONNECT,
+ SSL_CONNECT,
+ LISTEN,
+ CLOSE
+ };
+
+ explicit TCPSocketState(StateType state);
+ ~TCPSocketState();
+
+ StateType state() const { return state_; }
+
+ void SetPendingTransition(TransitionType pending_transition);
+ void CompletePendingTransition(bool success);
+
+ void DoTransition(TransitionType transition, bool success);
+
+ bool IsValidTransition(TransitionType transition) const;
+ bool IsPending(TransitionType transition) const;
+
+ bool IsConnected() const;
+ bool IsBound() const;
+
+ private:
+ StateType state_;
+ TransitionType pending_transition_;
+};
+
+// TCP socket API versions.
+enum PPAPI_SHARED_EXPORT TCPSocketVersion {
+ // PPB_TCPSocket_Private.
+ TCP_SOCKET_VERSION_PRIVATE,
+ // PPB_TCPSocket v1.0.
+ TCP_SOCKET_VERSION_1_0,
+ // PPB_TCPSocket v1.1 or above.
+ TCP_SOCKET_VERSION_1_1_OR_ABOVE
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
« no previous file with comments | « ppapi/proxy/tcp_socket_resource_base.cc ('k') | ppapi/shared_impl/ppb_tcp_socket_shared.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698