Sha256: c1ac6ec9c05f3a4bab19a791f5c0429d76fa1995a311ac8f5001ae2eea0a96be

Contents?: true

Size: 1.13 KB

Versions: 9

Compression:

Stored size: 1.13 KB

Contents

#include <CoreServices/CoreServices.h>

void callback(ConstFSEventStreamRef streamRef,
  void *clientCallBackInfo,
  size_t numEvents,
  void *eventPaths,
  const FSEventStreamEventFlags eventFlags[],
  const FSEventStreamEventId eventIds[]
) {
  // Print modified dirs
  int i;
  char **paths = eventPaths;
  for (i = 0; i < numEvents; i++) {
    printf("%s", paths[i]);
    printf(":");
  }
  printf("\n");
  fflush(stdout);
}

int main (int argc, const char * argv[]) {
  // Create event stream
  CFStringRef pathToWatch = CFStringCreateWithCString(kCFAllocatorDefault, argv[1], kCFStringEncodingUTF8);
  CFArrayRef pathsToWatch = CFArrayCreate(NULL, (const void **)&pathToWatch, 1, NULL);  
  void *callbackInfo = NULL;
  FSEventStreamRef stream;
  CFAbsoluteTime latency = 0.5;
  stream = FSEventStreamCreate(
    kCFAllocatorDefault,
    callback,
    callbackInfo,
    pathsToWatch,
    kFSEventStreamEventIdSinceNow,
    latency,
    kFSEventStreamCreateFlagNone
  );
  
  // Add stream to run loop
  FSEventStreamScheduleWithRunLoop(stream, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
  FSEventStreamStart(stream);
  CFRunLoopRun();
  
  return 2;
}

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rb-fsevent-0.3.9 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.8 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.6 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.5 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.4 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.3 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.2 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.1 ext/fsevent/fsevent_watch.c
rb-fsevent-0.3.0 ext/fsevent/fsevent_watch.c