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

Side by Side Diff: runtime/bin/file_system_watcher_macos.cc

Issue 2974233002: VM: Re-format to use at most one newline between functions (Closed)
Patch Set: Rebase and merge Created 3 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 #if !defined(DART_IO_DISABLED) 5 #if !defined(DART_IO_DISABLED)
6 6
7 #include "platform/globals.h" 7 #include "platform/globals.h"
8 #if defined(HOST_OS_MACOS) 8 #if defined(HOST_OS_MACOS)
9 9
10 #include "bin/file_system_watcher.h" 10 #include "bin/file_system_watcher.h"
11 11
12 #if !HOST_OS_IOS 12 #if !HOST_OS_IOS
13 13
14 #include <CoreServices/CoreServices.h> // NOLINT
14 #include <errno.h> // NOLINT 15 #include <errno.h> // NOLINT
15 #include <fcntl.h> // NOLINT 16 #include <fcntl.h> // NOLINT
16 #include <unistd.h> // NOLINT 17 #include <unistd.h> // NOLINT
17 #include <CoreServices/CoreServices.h> // NOLINT
18 18
19 #include "bin/eventhandler.h" 19 #include "bin/eventhandler.h"
20 #include "bin/fdutils.h" 20 #include "bin/fdutils.h"
21 #include "bin/file.h" 21 #include "bin/file.h"
22 #include "bin/socket.h" 22 #include "bin/socket.h"
23 #include "bin/thread.h" 23 #include "bin/thread.h"
24 #include "platform/signal_blocker.h" 24 #include "platform/signal_blocker.h"
25 25
26 #ifndef MAC_OS_X_VERSION_10_7 26 #ifndef MAC_OS_X_VERSION_10_7
27 enum { kFSEventStreamCreateFlagFileEvents = 0x00000010 }; 27 enum { kFSEventStreamCreateFlagFileEvents = 0x00000010 };
(...skipping 17 matching lines...) Expand all
45 45
46 union FSEvent { 46 union FSEvent {
47 struct { 47 struct {
48 uint32_t exists; 48 uint32_t exists;
49 uint32_t flags; 49 uint32_t flags;
50 char path[PATH_MAX]; 50 char path[PATH_MAX];
51 } data; 51 } data;
52 uint8_t bytes[PATH_MAX + 8]; 52 uint8_t bytes[PATH_MAX + 8];
53 }; 53 };
54 54
55
56 class FSEventsWatcher { 55 class FSEventsWatcher {
57 public: 56 public:
58 class Node { 57 class Node {
59 public: 58 public:
60 Node(FSEventsWatcher* watcher, 59 Node(FSEventsWatcher* watcher,
61 char* base_path, 60 char* base_path,
62 int read_fd, 61 int read_fd,
63 int write_fd, 62 int write_fd,
64 bool recursive) 63 bool recursive)
65 : watcher_(watcher), 64 : watcher_(watcher),
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 intptr_t base_path_length_; 169 intptr_t base_path_length_;
171 CFStringRef path_ref_; 170 CFStringRef path_ref_;
172 int read_fd_; 171 int read_fd_;
173 int write_fd_; 172 int write_fd_;
174 bool recursive_; 173 bool recursive_;
175 FSEventStreamRef ref_; 174 FSEventStreamRef ref_;
176 175
177 DISALLOW_COPY_AND_ASSIGN(Node); 176 DISALLOW_COPY_AND_ASSIGN(Node);
178 }; 177 };
179 178
180
181 FSEventsWatcher() : run_loop_(0) { Start(); } 179 FSEventsWatcher() : run_loop_(0) { Start(); }
182 180
183 void Start() { 181 void Start() {
184 Thread::Start(Run, reinterpret_cast<uword>(this)); 182 Thread::Start(Run, reinterpret_cast<uword>(this));
185 monitor_.Enter(); 183 monitor_.Enter();
186 while (run_loop_ == NULL) { 184 while (run_loop_ == NULL) {
187 monitor_.Wait(Monitor::kNoTimeout); 185 monitor_.Wait(Monitor::kNoTimeout);
188 } 186 }
189 monitor_.Exit(); 187 monitor_.Exit();
190 } 188 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 } 290 }
293 } 291 }
294 292
295 Monitor monitor_; 293 Monitor monitor_;
296 CFRunLoopRef run_loop_; 294 CFRunLoopRef run_loop_;
297 ThreadId threadId_; 295 ThreadId threadId_;
298 296
299 DISALLOW_COPY_AND_ASSIGN(FSEventsWatcher); 297 DISALLOW_COPY_AND_ASSIGN(FSEventsWatcher);
300 }; 298 };
301 299
302
303 #define kCFCoreFoundationVersionNumber10_7 635.00 300 #define kCFCoreFoundationVersionNumber10_7 635.00
304 bool FileSystemWatcher::IsSupported() { 301 bool FileSystemWatcher::IsSupported() {
305 return kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7; 302 return kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber10_7;
306 } 303 }
307 304
308
309 intptr_t FileSystemWatcher::Init() { 305 intptr_t FileSystemWatcher::Init() {
310 return reinterpret_cast<intptr_t>(new FSEventsWatcher()); 306 return reinterpret_cast<intptr_t>(new FSEventsWatcher());
311 } 307 }
312 308
313
314 void FileSystemWatcher::Close(intptr_t id) { 309 void FileSystemWatcher::Close(intptr_t id) {
315 delete reinterpret_cast<FSEventsWatcher*>(id); 310 delete reinterpret_cast<FSEventsWatcher*>(id);
316 } 311 }
317 312
318
319 intptr_t FileSystemWatcher::WatchPath(intptr_t id, 313 intptr_t FileSystemWatcher::WatchPath(intptr_t id,
320 const char* path, 314 const char* path,
321 int events, 315 int events,
322 bool recursive) { 316 bool recursive) {
323 FSEventsWatcher* watcher = reinterpret_cast<FSEventsWatcher*>(id); 317 FSEventsWatcher* watcher = reinterpret_cast<FSEventsWatcher*>(id);
324 return reinterpret_cast<intptr_t>(watcher->AddPath(path, events, recursive)); 318 return reinterpret_cast<intptr_t>(watcher->AddPath(path, events, recursive));
325 } 319 }
326 320
327
328 void FileSystemWatcher::UnwatchPath(intptr_t id, intptr_t path_id) { 321 void FileSystemWatcher::UnwatchPath(intptr_t id, intptr_t path_id) {
329 USE(id); 322 USE(id);
330 delete reinterpret_cast<FSEventsWatcher::Node*>(path_id); 323 delete reinterpret_cast<FSEventsWatcher::Node*>(path_id);
331 } 324 }
332 325
333
334 intptr_t FileSystemWatcher::GetSocketId(intptr_t id, intptr_t path_id) { 326 intptr_t FileSystemWatcher::GetSocketId(intptr_t id, intptr_t path_id) {
335 return reinterpret_cast<FSEventsWatcher::Node*>(path_id)->read_fd(); 327 return reinterpret_cast<FSEventsWatcher::Node*>(path_id)->read_fd();
336 } 328 }
337 329
338
339 Dart_Handle FileSystemWatcher::ReadEvents(intptr_t id, intptr_t path_id) { 330 Dart_Handle FileSystemWatcher::ReadEvents(intptr_t id, intptr_t path_id) {
340 intptr_t fd = GetSocketId(id, path_id); 331 intptr_t fd = GetSocketId(id, path_id);
341 intptr_t avail = FDUtils::AvailableBytes(fd); 332 intptr_t avail = FDUtils::AvailableBytes(fd);
342 int count = avail / sizeof(FSEvent); 333 int count = avail / sizeof(FSEvent);
343 if (count <= 0) { 334 if (count <= 0) {
344 return Dart_NewList(0); 335 return Dart_NewList(0);
345 } 336 }
346 Dart_Handle events = Dart_NewList(count); 337 Dart_Handle events = Dart_NewList(count);
347 FSEvent e; 338 FSEvent e;
348 for (int i = 0; i < count; i++) { 339 for (int i = 0; i < count; i++) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 #else // !HOST_OS_IOS 391 #else // !HOST_OS_IOS
401 392
402 namespace dart { 393 namespace dart {
403 namespace bin { 394 namespace bin {
404 395
405 // FSEvents are unavailable on iOS. Stub out related methods 396 // FSEvents are unavailable on iOS. Stub out related methods
406 Dart_Handle FileSystemWatcher::ReadEvents(intptr_t id, intptr_t path_id) { 397 Dart_Handle FileSystemWatcher::ReadEvents(intptr_t id, intptr_t path_id) {
407 return DartUtils::NewDartOSError(); 398 return DartUtils::NewDartOSError();
408 } 399 }
409 400
410
411 intptr_t FileSystemWatcher::GetSocketId(intptr_t id, intptr_t path_id) { 401 intptr_t FileSystemWatcher::GetSocketId(intptr_t id, intptr_t path_id) {
412 return -1; 402 return -1;
413 } 403 }
414 404
415
416 bool FileSystemWatcher::IsSupported() { 405 bool FileSystemWatcher::IsSupported() {
417 return false; 406 return false;
418 } 407 }
419 408
420
421 void FileSystemWatcher::UnwatchPath(intptr_t id, intptr_t path_id) {} 409 void FileSystemWatcher::UnwatchPath(intptr_t id, intptr_t path_id) {}
422 410
423
424 intptr_t FileSystemWatcher::Init() { 411 intptr_t FileSystemWatcher::Init() {
425 return -1; 412 return -1;
426 } 413 }
427 414
428
429 void FileSystemWatcher::Close(intptr_t id) {} 415 void FileSystemWatcher::Close(intptr_t id) {}
430 416
431
432 intptr_t FileSystemWatcher::WatchPath(intptr_t id, 417 intptr_t FileSystemWatcher::WatchPath(intptr_t id,
433 const char* path, 418 const char* path,
434 int events, 419 int events,
435 bool recursive) { 420 bool recursive) {
436 return -1; 421 return -1;
437 } 422 }
438 423
439 } // namespace bin 424 } // namespace bin
440 } // namespace dart 425 } // namespace dart
441 426
442 #endif // !HOST_OS_IOS 427 #endif // !HOST_OS_IOS
443 #endif // defined(HOST_OS_MACOS) 428 #endif // defined(HOST_OS_MACOS)
444 429
445 #endif // !defined(DART_IO_DISABLED) 430 #endif // !defined(DART_IO_DISABLED)
OLDNEW
« no previous file with comments | « runtime/bin/file_system_watcher_linux.cc ('k') | runtime/bin/file_system_watcher_unsupported.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698