OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef BIN_EVENTHANDLER_WIN_H_ | 5 #ifndef BIN_EVENTHANDLER_WIN_H_ |
6 #define BIN_EVENTHANDLER_WIN_H_ | 6 #define BIN_EVENTHANDLER_WIN_H_ |
7 | 7 |
8 #if !defined(BIN_EVENTHANDLER_H_) | 8 #if !defined(BIN_EVENTHANDLER_H_) |
9 #error Do not include eventhandler_win.h directly; use eventhandler.h instead. | 9 #error Do not include eventhandler_win.h directly; use eventhandler.h instead. |
10 #endif | 10 #endif |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
123 // object as the object is allocated larger than it's definition | 123 // object as the object is allocated larger than it's definition |
124 // indicate to extend this array. | 124 // indicate to extend this array. |
125 uint8_t buffer_data_[1]; | 125 uint8_t buffer_data_[1]; |
126 }; | 126 }; |
127 | 127 |
128 | 128 |
129 // Abstract super class for holding information on listen and connected | 129 // Abstract super class for holding information on listen and connected |
130 // sockets. | 130 // sockets. |
131 class Handle { | 131 class Handle { |
132 public: | 132 public: |
133 enum Type { kFile, kClientSocket, kListenSocket }; | 133 enum Type { |
134 kFile, | |
135 kDirectoryWatch, | |
136 kClientSocket, | |
137 kListenSocket | |
138 }; | |
134 | 139 |
135 class ScopedLock { | 140 class ScopedLock { |
136 public: | 141 public: |
137 explicit ScopedLock(Handle* handle) | 142 explicit ScopedLock(Handle* handle) |
138 : handle_(handle) { | 143 : handle_(handle) { |
139 handle_->Lock(); | 144 handle_->Lock(); |
140 } | 145 } |
141 ~ScopedLock() { | 146 ~ScopedLock() { |
142 handle_->Unlock(); | 147 handle_->Unlock(); |
143 } | 148 } |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
249 : Handle(reinterpret_cast<HANDLE>(handle)) { type_ = kFile; } | 254 : Handle(reinterpret_cast<HANDLE>(handle)) { type_ = kFile; } |
250 FileHandle(HANDLE handle, Dart_Port port) | 255 FileHandle(HANDLE handle, Dart_Port port) |
251 : Handle(reinterpret_cast<HANDLE>(handle), port) { type_ = kFile; } | 256 : Handle(reinterpret_cast<HANDLE>(handle), port) { type_ = kFile; } |
252 | 257 |
253 virtual void EnsureInitialized(EventHandlerImplementation* event_handler); | 258 virtual void EnsureInitialized(EventHandlerImplementation* event_handler); |
254 virtual bool IsClosed(); | 259 virtual bool IsClosed(); |
255 virtual void DoClose(); | 260 virtual void DoClose(); |
256 }; | 261 }; |
257 | 262 |
258 | 263 |
264 class DirectoryWatchHandle : public Handle { | |
265 public: | |
266 DirectoryWatchHandle(HANDLE handle, int events, bool recursive) | |
267 : Handle(reinterpret_cast<HANDLE>(handle)), | |
Søren Gjesse
2013/08/26 07:51:55
I don't think this case is needed here. Handle tak
| |
268 events_(events), | |
269 recursive_(recursive) { | |
270 type_ = kDirectoryWatch; | |
271 } | |
272 | |
273 virtual void EnsureInitialized(EventHandlerImplementation* event_handler); | |
274 virtual bool IsClosed(); | |
275 virtual void DoClose(); | |
276 | |
277 virtual bool IssueRead(); | |
278 | |
279 private: | |
280 int events_; | |
281 bool recursive_; | |
282 }; | |
283 | |
284 | |
259 class SocketHandle : public Handle { | 285 class SocketHandle : public Handle { |
260 public: | 286 public: |
261 SOCKET socket() { return reinterpret_cast<SOCKET>(handle_); } | 287 SOCKET socket() { return reinterpret_cast<SOCKET>(handle_); } |
262 | 288 |
263 protected: | 289 protected: |
264 explicit SocketHandle(SOCKET s) : Handle(reinterpret_cast<HANDLE>(s)) {} | 290 explicit SocketHandle(SOCKET s) : Handle(reinterpret_cast<HANDLE>(s)) {} |
265 SocketHandle(SOCKET s, Dart_Port port) | 291 SocketHandle(SOCKET s, Dart_Port port) |
266 : Handle(reinterpret_cast<HANDLE>(s), port) {} | 292 : Handle(reinterpret_cast<HANDLE>(s), port) {} |
267 | 293 |
268 virtual void HandleIssueError(); | 294 virtual void HandleIssueError(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
393 | 419 |
394 TimeoutQueue timeout_queue_; // Time for next timeout. | 420 TimeoutQueue timeout_queue_; // Time for next timeout. |
395 bool shutdown_; | 421 bool shutdown_; |
396 HANDLE completion_port_; | 422 HANDLE completion_port_; |
397 }; | 423 }; |
398 | 424 |
399 } // namespace bin | 425 } // namespace bin |
400 } // namespace dart | 426 } // namespace dart |
401 | 427 |
402 #endif // BIN_EVENTHANDLER_WIN_H_ | 428 #endif // BIN_EVENTHANDLER_WIN_H_ |
OLD | NEW |