Sha256: 48bcb4fa553f1b275e73c15aebd821f0a6a7c7c8394d2831695c2037e4f3df9c

Contents?: true

Size: 1.13 KB

Versions: 5

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

5 entries across 5 versions & 1 rubygems

Version Path
rspactor-0.7.0.beta.7 ext/fsevent/fsevent_watch.c
rspactor-0.7.0.beta.6 ext/fsevent/fsevent_watch.c
rspactor-0.7.0.beta.5 ext/fsevent/fsevent_watch.c
rspactor-0.7.0.beta.4 ext/fsevent/fsevent_watch.c
rspactor-0.7.0.beta.3 ext/fsevent/fsevent_watch.c