OLD | NEW |
| (Empty) |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 #ifndef RUNTIME_BIN_SYNC_SOCKET_H_ | |
6 #define RUNTIME_BIN_SYNC_SOCKET_H_ | |
7 | |
8 #if defined(DART_IO_DISABLED) | |
9 #error "sync_socket.h can only be included on builds with IO enabled" | |
10 #endif | |
11 | |
12 #include "bin/socket_base.h" | |
13 #include "platform/globals.h" | |
14 | |
15 namespace dart { | |
16 namespace bin { | |
17 | |
18 class SynchronousSocket { | |
19 public: | |
20 explicit SynchronousSocket(intptr_t fd); | |
21 ~SynchronousSocket() { ASSERT(fd_ == kClosedFd); } | |
22 | |
23 intptr_t fd() const { return fd_; } | |
24 void SetClosedFd(); | |
25 | |
26 static bool Initialize(); | |
27 | |
28 static intptr_t CreateConnect(const RawAddr& addr); | |
29 | |
30 static Dart_Handle SetSocketIdNativeField(Dart_Handle handle, intptr_t id); | |
31 static Dart_Handle GetSocketIdNativeField(Dart_Handle socket_obj, | |
32 SynchronousSocket** socket); | |
33 | |
34 static void ShutdownRead(intptr_t fd); | |
35 static void ShutdownWrite(intptr_t fd); | |
36 | |
37 private: | |
38 static const int kClosedFd = -1; | |
39 | |
40 intptr_t fd_; | |
41 | |
42 DISALLOW_COPY_AND_ASSIGN(SynchronousSocket); | |
43 }; | |
44 | |
45 } // namespace bin | |
46 } // namespace dart | |
47 | |
48 #endif // RUNTIME_BIN_SYNC_SOCKET_H_ | |
OLD | NEW |