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

Side by Side Diff: runtime/bin/eventhandler_win.h

Issue 2480793002: clang-format runtime/bin (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « runtime/bin/eventhandler_unsupported.cc ('k') | runtime/bin/eventhandler_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 RUNTIME_BIN_EVENTHANDLER_WIN_H_ 5 #ifndef RUNTIME_BIN_EVENTHANDLER_WIN_H_
6 #define RUNTIME_BIN_EVENTHANDLER_WIN_H_ 6 #define RUNTIME_BIN_EVENTHANDLER_WIN_H_
7 7
8 #if !defined(RUNTIME_BIN_EVENTHANDLER_H_) 8 #if !defined(RUNTIME_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 15 matching lines...) Expand all
26 class SocketHandle; 26 class SocketHandle;
27 class ClientSocket; 27 class ClientSocket;
28 class ListenSocket; 28 class ListenSocket;
29 29
30 // An OverlappedBuffer encapsulates the OVERLAPPED structure and the 30 // An OverlappedBuffer encapsulates the OVERLAPPED structure and the
31 // associated data buffer. For accept it also contains the pre-created 31 // associated data buffer. For accept it also contains the pre-created
32 // socket for the client. 32 // socket for the client.
33 class OverlappedBuffer { 33 class OverlappedBuffer {
34 public: 34 public:
35 enum Operation { 35 enum Operation {
36 kAccept, kRead, kRecvFrom, kWrite, kSendTo, kDisconnect, kConnect 36 kAccept,
37 kRead,
38 kRecvFrom,
39 kWrite,
40 kSendTo,
41 kDisconnect,
42 kConnect
37 }; 43 };
38 44
39 static OverlappedBuffer* AllocateAcceptBuffer(int buffer_size); 45 static OverlappedBuffer* AllocateAcceptBuffer(int buffer_size);
40 static OverlappedBuffer* AllocateReadBuffer(int buffer_size); 46 static OverlappedBuffer* AllocateReadBuffer(int buffer_size);
41 static OverlappedBuffer* AllocateRecvFromBuffer(int buffer_size); 47 static OverlappedBuffer* AllocateRecvFromBuffer(int buffer_size);
42 static OverlappedBuffer* AllocateWriteBuffer(int buffer_size); 48 static OverlappedBuffer* AllocateWriteBuffer(int buffer_size);
43 static OverlappedBuffer* AllocateSendToBuffer(int buffer_size); 49 static OverlappedBuffer* AllocateSendToBuffer(int buffer_size);
44 static OverlappedBuffer* AllocateDisconnectBuffer(); 50 static OverlappedBuffer* AllocateDisconnectBuffer();
45 static OverlappedBuffer* AllocateConnectBuffer(); 51 static OverlappedBuffer* AllocateConnectBuffer();
46 static void DisposeBuffer(OverlappedBuffer* buffer); 52 static void DisposeBuffer(OverlappedBuffer* buffer);
(...skipping 14 matching lines...) Expand all
61 int Write(const void* buffer, int num_bytes); 67 int Write(const void* buffer, int num_bytes);
62 68
63 // Check the amount of data in a read buffer which has not been read yet. 69 // Check the amount of data in a read buffer which has not been read yet.
64 int GetRemainingLength(); 70 int GetRemainingLength();
65 bool IsEmpty() { return GetRemainingLength() == 0; } 71 bool IsEmpty() { return GetRemainingLength() == 0; }
66 72
67 Operation operation() { return operation_; } 73 Operation operation() { return operation_; }
68 SOCKET client() { return client_; } 74 SOCKET client() { return client_; }
69 char* GetBufferStart() { return reinterpret_cast<char*>(&buffer_data_); } 75 char* GetBufferStart() { return reinterpret_cast<char*>(&buffer_data_); }
70 int GetBufferSize() { return buflen_; } 76 int GetBufferSize() { return buflen_; }
71 struct sockaddr* from() { return from_; } 77 struct sockaddr* from() {
78 return from_;
79 }
72 socklen_t* from_len_addr() { return from_len_addr_; } 80 socklen_t* from_len_addr() { return from_len_addr_; }
73 socklen_t from_len() { return from_ == NULL ? 0 : *from_len_addr_; } 81 socklen_t from_len() { return from_ == NULL ? 0 : *from_len_addr_; }
74 82
75 // Returns the address of the OVERLAPPED structure with all fields 83 // Returns the address of the OVERLAPPED structure with all fields
76 // initialized to zero. 84 // initialized to zero.
77 OVERLAPPED* GetCleanOverlapped() { 85 OVERLAPPED* GetCleanOverlapped() {
78 memset(&overlapped_, 0, sizeof(overlapped_)); 86 memset(&overlapped_, 0, sizeof(overlapped_));
79 return &overlapped_; 87 return &overlapped_;
80 } 88 }
81 89
(...skipping 10 matching lines...) Expand all
92 OverlappedBuffer(int buffer_size, Operation operation) 100 OverlappedBuffer(int buffer_size, Operation operation)
93 : operation_(operation), buflen_(buffer_size) { 101 : operation_(operation), buflen_(buffer_size) {
94 memset(GetBufferStart(), 0, GetBufferSize()); 102 memset(GetBufferStart(), 0, GetBufferSize());
95 if (operation == kRecvFrom) { 103 if (operation == kRecvFrom) {
96 // Reserve part of the buffer for the length of source sockaddr 104 // Reserve part of the buffer for the length of source sockaddr
97 // and source sockaddr. 105 // and source sockaddr.
98 const int kAdditionalSize = 106 const int kAdditionalSize =
99 sizeof(struct sockaddr_storage) + sizeof(socklen_t); 107 sizeof(struct sockaddr_storage) + sizeof(socklen_t);
100 ASSERT(buflen_ > kAdditionalSize); 108 ASSERT(buflen_ > kAdditionalSize);
101 buflen_ -= kAdditionalSize; 109 buflen_ -= kAdditionalSize;
102 from_len_addr_ = reinterpret_cast<socklen_t*>( 110 from_len_addr_ =
103 GetBufferStart() + GetBufferSize()); 111 reinterpret_cast<socklen_t*>(GetBufferStart() + GetBufferSize());
104 *from_len_addr_ = sizeof(struct sockaddr_storage); 112 *from_len_addr_ = sizeof(struct sockaddr_storage);
105 from_ = reinterpret_cast<struct sockaddr*>(from_len_addr_ + 1); 113 from_ = reinterpret_cast<struct sockaddr*>(from_len_addr_ + 1);
106 } else { 114 } else {
107 from_len_addr_ = NULL; 115 from_len_addr_ = NULL;
108 from_ = NULL; 116 from_ = NULL;
109 } 117 }
110 index_ = 0; 118 index_ = 0;
111 data_length_ = 0; 119 data_length_ = 0;
112 if (operation_ == kAccept) { 120 if (operation_ == kAccept) {
113 client_ = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 121 client_ = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
114 } 122 }
115 } 123 }
116 124
117 void* operator new(size_t size, int buffer_size) { 125 void* operator new(size_t size, int buffer_size) {
118 return malloc(size + buffer_size); 126 return malloc(size + buffer_size);
119 } 127 }
120 128
121 void operator delete(void* buffer) { 129 void operator delete(void* buffer) { free(buffer); }
122 free(buffer);
123 }
124 130
125 // Allocate an overlapped buffer for thse specified amount of data and 131 // Allocate an overlapped buffer for thse specified amount of data and
126 // operation. Some operations need additional buffer space, which is 132 // operation. Some operations need additional buffer space, which is
127 // handled by this method. 133 // handled by this method.
128 static OverlappedBuffer* AllocateBuffer(int buffer_size, 134 static OverlappedBuffer* AllocateBuffer(int buffer_size, Operation operation);
129 Operation operation);
130 135
131 OVERLAPPED overlapped_; // OVERLAPPED structure for overlapped IO. 136 OVERLAPPED overlapped_; // OVERLAPPED structure for overlapped IO.
132 SOCKET client_; // Used for AcceptEx client socket. 137 SOCKET client_; // Used for AcceptEx client socket.
133 int buflen_; // Length of the buffer. 138 int buflen_; // Length of the buffer.
134 Operation operation_; // Type of operation issued. 139 Operation operation_; // Type of operation issued.
135 140
136 int index_; // Index for next read from read buffer. 141 int index_; // Index for next read from read buffer.
137 int data_length_; // Length of the actual data in the buffer. 142 int data_length_; // Length of the actual data in the buffer.
138 143
139 WSABUF wbuf_; // Structure for passing buffer to WSA functions. 144 WSABUF wbuf_; // Structure for passing buffer to WSA functions.
140 145
141 // For the recvfrom operation additional storace is allocated for the 146 // For the recvfrom operation additional storace is allocated for the
142 // source sockaddr. 147 // source sockaddr.
143 socklen_t* from_len_addr_; // Pointer to source sockaddr size storage. 148 socklen_t* from_len_addr_; // Pointer to source sockaddr size storage.
144 struct sockaddr* from_; // Pointer to source sockaddr storage. 149 struct sockaddr* from_; // Pointer to source sockaddr storage.
145 150
146 // Buffer for recv/send/AcceptEx. This must be at the end of the 151 // Buffer for recv/send/AcceptEx. This must be at the end of the
147 // object as the object is allocated larger than it's definition 152 // object as the object is allocated larger than it's definition
148 // indicate to extend this array. 153 // indicate to extend this array.
149 uint8_t buffer_data_[1]; 154 uint8_t buffer_data_[1];
150 155
151 DISALLOW_COPY_AND_ASSIGN(OverlappedBuffer); 156 DISALLOW_COPY_AND_ASSIGN(OverlappedBuffer);
152 }; 157 };
153 158
154 159
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 198
194 bool IsClosing() { return (flags_ & (1 << kClosing)) != 0; } 199 bool IsClosing() { return (flags_ & (1 << kClosing)) != 0; }
195 bool IsClosedRead() { return (flags_ & (1 << kCloseRead)) != 0; } 200 bool IsClosedRead() { return (flags_ & (1 << kCloseRead)) != 0; }
196 bool IsClosedWrite() { return (flags_ & (1 << kCloseWrite)) != 0; } 201 bool IsClosedWrite() { return (flags_ & (1 << kCloseWrite)) != 0; }
197 bool IsError() { return (flags_ & (1 << kError)) != 0; } 202 bool IsError() { return (flags_ & (1 << kError)) != 0; }
198 void MarkClosing() { flags_ |= (1 << kClosing); } 203 void MarkClosing() { flags_ |= (1 << kClosing); }
199 void MarkClosedRead() { flags_ |= (1 << kCloseRead); } 204 void MarkClosedRead() { flags_ |= (1 << kCloseRead); }
200 void MarkClosedWrite() { flags_ |= (1 << kCloseWrite); } 205 void MarkClosedWrite() { flags_ |= (1 << kCloseWrite); }
201 void MarkError() { flags_ |= (1 << kError); } 206 void MarkError() { flags_ |= (1 << kError); }
202 207
203 virtual void EnsureInitialized( 208 virtual void EnsureInitialized(EventHandlerImplementation* event_handler) = 0;
204 EventHandlerImplementation* event_handler) = 0;
205 209
206 HANDLE handle() { return handle_; } 210 HANDLE handle() { return handle_; }
207 211
208 bool CreateCompletionPort(HANDLE completion_port); 212 bool CreateCompletionPort(HANDLE completion_port);
209 213
210 void Close(); 214 void Close();
211 virtual void DoClose(); 215 virtual void DoClose();
212 virtual bool IsClosed() = 0; 216 virtual bool IsClosed() = 0;
213 217
214 bool IsHandleClosed() const { return handle_ == INVALID_HANDLE_VALUE; } 218 bool IsHandleClosed() const { return handle_ == INVALID_HANDLE_VALUE; }
215 219
216 Type type() { return type_; } 220 Type type() { return type_; }
217 bool is_file() { return type_ == kFile; } 221 bool is_file() { return type_ == kFile; }
218 bool is_socket() { return type_ == kListenSocket || 222 bool is_socket() {
219 type_ == kClientSocket || 223 return type_ == kListenSocket || type_ == kClientSocket ||
220 type_ == kDatagramSocket; } 224 type_ == kDatagramSocket;
225 }
221 bool is_listen_socket() { return type_ == kListenSocket; } 226 bool is_listen_socket() { return type_ == kListenSocket; }
222 bool is_client_socket() { return type_ == kClientSocket; } 227 bool is_client_socket() { return type_ == kClientSocket; }
223 bool is_datagram_socket() { return type_ == kDatagramSocket; } 228 bool is_datagram_socket() { return type_ == kDatagramSocket; }
224 229
225 void MarkDoesNotSupportOverlappedIO() { 230 void MarkDoesNotSupportOverlappedIO() {
226 flags_ |= (1 << kDoesNotSupportOverlappedIO); 231 flags_ |= (1 << kDoesNotSupportOverlappedIO);
227 } 232 }
228 bool SupportsOverlappedIO() { 233 bool SupportsOverlappedIO() {
229 return (flags_ & (1 << kDoesNotSupportOverlappedIO)) == 0; 234 return (flags_ & (1 << kDoesNotSupportOverlappedIO)) == 0;
230 } 235 }
(...skipping 18 matching lines...) Expand all
249 explicit Handle(intptr_t handle); 254 explicit Handle(intptr_t handle);
250 255
251 virtual void HandleIssueError(); 256 virtual void HandleIssueError();
252 257
253 Monitor* monitor_; 258 Monitor* monitor_;
254 Type type_; 259 Type type_;
255 HANDLE handle_; 260 HANDLE handle_;
256 HANDLE completion_port_; 261 HANDLE completion_port_;
257 EventHandlerImplementation* event_handler_; 262 EventHandlerImplementation* event_handler_;
258 263
259 OverlappedBuffer* data_ready_; // Buffer for data ready to be read. 264 OverlappedBuffer* data_ready_; // Buffer for data ready to be read.
260 OverlappedBuffer* pending_read_; // Buffer for pending read. 265 OverlappedBuffer* pending_read_; // Buffer for pending read.
261 OverlappedBuffer* pending_write_; // Buffer for pending write 266 OverlappedBuffer* pending_write_; // Buffer for pending write
262 267
263 DWORD last_error_; 268 DWORD last_error_;
264 269
265 ThreadId read_thread_id_; 270 ThreadId read_thread_id_;
266 HANDLE read_thread_handle_; 271 HANDLE read_thread_handle_;
267 bool read_thread_starting_; 272 bool read_thread_starting_;
268 bool read_thread_finished_; 273 bool read_thread_finished_;
269 274
270 private: 275 private:
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 350
346 DISALLOW_COPY_AND_ASSIGN(DirectoryWatchHandle); 351 DISALLOW_COPY_AND_ASSIGN(DirectoryWatchHandle);
347 }; 352 };
348 353
349 354
350 class SocketHandle : public Handle { 355 class SocketHandle : public Handle {
351 public: 356 public:
352 SOCKET socket() const { return socket_; } 357 SOCKET socket() const { return socket_; }
353 358
354 protected: 359 protected:
355 explicit SocketHandle(intptr_t s) 360 explicit SocketHandle(intptr_t s) : Handle(s), socket_(s) {}
356 : Handle(s),
357 socket_(s) {}
358 361
359 virtual void HandleIssueError(); 362 virtual void HandleIssueError();
360 363
361 private: 364 private:
362 const SOCKET socket_; 365 const SOCKET socket_;
363 366
364 DISALLOW_COPY_AND_ASSIGN(SocketHandle); 367 DISALLOW_COPY_AND_ASSIGN(SocketHandle);
365 }; 368 };
366 369
367 370
368 // Information on listen sockets. 371 // Information on listen sockets.
369 class ListenSocket : public DescriptorInfoMultipleMixin<SocketHandle> { 372 class ListenSocket : public DescriptorInfoMultipleMixin<SocketHandle> {
370 public: 373 public:
371 explicit ListenSocket(intptr_t s) : DescriptorInfoMultipleMixin(s, true), 374 explicit ListenSocket(intptr_t s)
372 AcceptEx_(NULL), 375 : DescriptorInfoMultipleMixin(s, true),
373 pending_accept_count_(0), 376 AcceptEx_(NULL),
374 accepted_head_(NULL), 377 pending_accept_count_(0),
375 accepted_tail_(NULL), 378 accepted_head_(NULL),
376 accepted_count_(0) { 379 accepted_tail_(NULL),
380 accepted_count_(0) {
377 type_ = kListenSocket; 381 type_ = kListenSocket;
378 } 382 }
379 virtual ~ListenSocket() { 383 virtual ~ListenSocket() {
380 ASSERT(!HasPendingAccept()); 384 ASSERT(!HasPendingAccept());
381 ASSERT(accepted_head_ == NULL); 385 ASSERT(accepted_head_ == NULL);
382 ASSERT(accepted_tail_ == NULL); 386 ASSERT(accepted_tail_ == NULL);
383 } 387 }
384 388
385 // Socket interface exposing normal socket operations. 389 // Socket interface exposing normal socket operations.
386 ClientSocket* Accept(); 390 ClientSocket* Accept();
387 bool CanAccept(); 391 bool CanAccept();
388 392
389 // Internal interface used by the event handler. 393 // Internal interface used by the event handler.
390 bool HasPendingAccept() { return pending_accept_count_ > 0; } 394 bool HasPendingAccept() { return pending_accept_count_ > 0; }
391 bool IssueAccept(); 395 bool IssueAccept();
392 void AcceptComplete(OverlappedBuffer* buffer, HANDLE completion_port); 396 void AcceptComplete(OverlappedBuffer* buffer, HANDLE completion_port);
393 397
394 virtual void EnsureInitialized( 398 virtual void EnsureInitialized(EventHandlerImplementation* event_handler);
395 EventHandlerImplementation* event_handler);
396 virtual void DoClose(); 399 virtual void DoClose();
397 virtual bool IsClosed(); 400 virtual bool IsClosed();
398 401
399 int pending_accept_count() { return pending_accept_count_; } 402 int pending_accept_count() { return pending_accept_count_; }
400 403
401 int accepted_count() { return accepted_count_; } 404 int accepted_count() { return accepted_count_; }
402 405
403 private: 406 private:
404 bool LoadAcceptEx(); 407 bool LoadAcceptEx();
405 408
(...skipping 12 matching lines...) Expand all
418 // this queue and processed by dart isolates. 421 // this queue and processed by dart isolates.
419 int accepted_count_; 422 int accepted_count_;
420 423
421 DISALLOW_COPY_AND_ASSIGN(ListenSocket); 424 DISALLOW_COPY_AND_ASSIGN(ListenSocket);
422 }; 425 };
423 426
424 427
425 // Information on connected sockets. 428 // Information on connected sockets.
426 class ClientSocket : public DescriptorInfoSingleMixin<SocketHandle> { 429 class ClientSocket : public DescriptorInfoSingleMixin<SocketHandle> {
427 public: 430 public:
428 explicit ClientSocket(intptr_t s) : DescriptorInfoSingleMixin(s, true), 431 explicit ClientSocket(intptr_t s)
429 DisconnectEx_(NULL), 432 : DescriptorInfoSingleMixin(s, true),
430 next_(NULL), 433 DisconnectEx_(NULL),
431 connected_(false), 434 next_(NULL),
432 closed_(false) { 435 connected_(false),
436 closed_(false) {
433 LoadDisconnectEx(); 437 LoadDisconnectEx();
434 type_ = kClientSocket; 438 type_ = kClientSocket;
435 } 439 }
436 440
437 virtual ~ClientSocket() { 441 virtual ~ClientSocket() {
438 // Don't delete this object until all pending requests have been handled. 442 // Don't delete this object until all pending requests have been handled.
439 ASSERT(!HasPendingRead()); 443 ASSERT(!HasPendingRead());
440 ASSERT(!HasPendingWrite()); 444 ASSERT(!HasPendingWrite());
441 ASSERT(next_ == NULL); 445 ASSERT(next_ == NULL);
442 ASSERT(closed_ == true); 446 ASSERT(closed_ == true);
443 } 447 }
444 448
445 void Shutdown(int how); 449 void Shutdown(int how);
446 450
447 // Internal interface used by the event handler. 451 // Internal interface used by the event handler.
448 virtual bool IssueRead(); 452 virtual bool IssueRead();
449 virtual bool IssueWrite(); 453 virtual bool IssueWrite();
450 void IssueDisconnect(); 454 void IssueDisconnect();
451 void DisconnectComplete(OverlappedBuffer* buffer); 455 void DisconnectComplete(OverlappedBuffer* buffer);
452 456
453 void ConnectComplete(OverlappedBuffer* buffer); 457 void ConnectComplete(OverlappedBuffer* buffer);
454 458
455 virtual void EnsureInitialized( 459 virtual void EnsureInitialized(EventHandlerImplementation* event_handler);
456 EventHandlerImplementation* event_handler);
457 virtual void DoClose(); 460 virtual void DoClose();
458 virtual bool IsClosed(); 461 virtual bool IsClosed();
459 462
460 ClientSocket* next() { return next_; } 463 ClientSocket* next() { return next_; }
461 void set_next(ClientSocket* next) { next_ = next; } 464 void set_next(ClientSocket* next) { next_ = next; }
462 465
463 void mark_connected() { 466 void mark_connected() { connected_ = true; }
464 connected_ = true;
465 }
466 bool is_connected() const { return connected_; } 467 bool is_connected() const { return connected_; }
467 468
468 void mark_closed() { 469 void mark_closed() { closed_ = true; }
469 closed_ = true;
470 }
471 470
472 private: 471 private:
473 bool LoadDisconnectEx(); 472 bool LoadDisconnectEx();
474 473
475 LPFN_DISCONNECTEX DisconnectEx_; 474 LPFN_DISCONNECTEX DisconnectEx_;
476 ClientSocket* next_; 475 ClientSocket* next_;
477 bool connected_; 476 bool connected_;
478 bool closed_; 477 bool closed_;
479 478
480 DISALLOW_COPY_AND_ASSIGN(ClientSocket); 479 DISALLOW_COPY_AND_ASSIGN(ClientSocket);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 void SendData(intptr_t id, Dart_Port dart_port, int64_t data); 514 void SendData(intptr_t id, Dart_Port dart_port, int64_t data);
516 void Start(EventHandler* handler); 515 void Start(EventHandler* handler);
517 void Shutdown(); 516 void Shutdown();
518 517
519 static void EventHandlerEntry(uword args); 518 static void EventHandlerEntry(uword args);
520 519
521 int64_t GetTimeout(); 520 int64_t GetTimeout();
522 void HandleInterrupt(InterruptMessage* msg); 521 void HandleInterrupt(InterruptMessage* msg);
523 void HandleTimeout(); 522 void HandleTimeout();
524 void HandleAccept(ListenSocket* listen_socket, OverlappedBuffer* buffer); 523 void HandleAccept(ListenSocket* listen_socket, OverlappedBuffer* buffer);
525 void TryDispatchingPendingAccepts(ListenSocket *listen_socket); 524 void TryDispatchingPendingAccepts(ListenSocket* listen_socket);
526 void HandleRead(Handle* handle, int bytes, OverlappedBuffer* buffer); 525 void HandleRead(Handle* handle, int bytes, OverlappedBuffer* buffer);
527 void HandleRecvFrom(Handle* handle, int bytes, OverlappedBuffer* buffer); 526 void HandleRecvFrom(Handle* handle, int bytes, OverlappedBuffer* buffer);
528 void HandleWrite(Handle* handle, int bytes, OverlappedBuffer* buffer); 527 void HandleWrite(Handle* handle, int bytes, OverlappedBuffer* buffer);
529 void HandleDisconnect(ClientSocket* client_socket, 528 void HandleDisconnect(ClientSocket* client_socket,
530 int bytes, 529 int bytes,
531 OverlappedBuffer* buffer); 530 OverlappedBuffer* buffer);
532 void HandleConnect(ClientSocket* client_socket, 531 void HandleConnect(ClientSocket* client_socket,
533 int bytes, 532 int bytes,
534 OverlappedBuffer* buffer); 533 OverlappedBuffer* buffer);
535 void HandleIOCompletion(DWORD bytes, ULONG_PTR key, OVERLAPPED* overlapped); 534 void HandleIOCompletion(DWORD bytes, ULONG_PTR key, OVERLAPPED* overlapped);
(...skipping 11 matching lines...) Expand all
547 bool shutdown_; 546 bool shutdown_;
548 HANDLE completion_port_; 547 HANDLE completion_port_;
549 548
550 DISALLOW_COPY_AND_ASSIGN(EventHandlerImplementation); 549 DISALLOW_COPY_AND_ASSIGN(EventHandlerImplementation);
551 }; 550 };
552 551
553 } // namespace bin 552 } // namespace bin
554 } // namespace dart 553 } // namespace dart
555 554
556 #endif // RUNTIME_BIN_EVENTHANDLER_WIN_H_ 555 #endif // RUNTIME_BIN_EVENTHANDLER_WIN_H_
OLDNEW
« no previous file with comments | « runtime/bin/eventhandler_unsupported.cc ('k') | runtime/bin/eventhandler_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698