Index: runtime/bin/sync_socket.h |
diff --git a/runtime/bin/sync_socket.h b/runtime/bin/sync_socket.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4a918365aa79548c4d769668485a86064e3f6627 |
--- /dev/null |
+++ b/runtime/bin/sync_socket.h |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+#ifndef RUNTIME_BIN_SYNC_SOCKET_H_ |
+#define RUNTIME_BIN_SYNC_SOCKET_H_ |
+ |
+#if defined(DART_IO_DISABLED) |
+#error "sync_socket.h can only be included on builds with IO enabled" |
+#endif |
+ |
+#include "bin/socket_base.h" |
+#include "platform/globals.h" |
+ |
+namespace dart { |
+namespace bin { |
+ |
+class SynchronousSocket { |
+ public: |
+ explicit SynchronousSocket(intptr_t fd); |
+ ~SynchronousSocket() { ASSERT(fd_ == kClosedFd); } |
+ |
+ intptr_t fd() const { return fd_; } |
+ void SetClosedFd(); |
+ |
+ static bool Initialize(); |
+ |
+ static intptr_t CreateConnect(const RawAddr& addr); |
+ |
+ static Dart_Handle SetSocketIdNativeField(Dart_Handle handle, intptr_t id); |
+ static Dart_Handle GetSocketIdNativeField(Dart_Handle socket_obj, |
+ SynchronousSocket** socket); |
+ |
+ static void ShutdownRead(intptr_t fd); |
+ static void ShutdownWrite(intptr_t fd); |
+ |
+ private: |
+ static const int kClosedFd = -1; |
+ |
+ intptr_t fd_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(SynchronousSocket); |
+}; |
+ |
+} // namespace bin |
+} // namespace dart |
+ |
+#endif // RUNTIME_BIN_SYNC_SOCKET_H_ |