Sha256: c03cb4fcb38b3e7a69a43c78ea2a9cbf15fc523d035bf4e196d2a8549d641d82

Contents?: true

Size: 1.48 KB

Versions: 154

Compression:

Stored size: 1.48 KB

Contents

require 'ffi'

module FChange
  # This module contains the low-level foreign-function.
  # It's an implementation detail, and not meant for users to deal with.
  #
  # @private
  module Native
    extend FFI::Library
    ffi_lib 'kernel32'
    ffi_convention :stdcall

    # HANDLE FindFirstChangeNotification(
    #  LPCTSTR lpPathName,    // directory name
    #  BOOL bWatchSubtree,    // monitoring option
    #  DWORD dwNotifyFilter   // filter conditions
    #);
    attach_function :FindFirstChangeNotificationW, [:pointer, :int, :long], :long

    # HANDLE FindFirstChangeNotification(
    #  LPCTSTR lpPathName,    // directory name
    #  BOOL bWatchSubtree,    // monitoring option
    #  DWORD dwNotifyFilter   // filter conditions
    #);
    attach_function :FindFirstChangeNotificationA, [:pointer, :int, :long], :long

    # BOOL FindNextChangeNotification(
    #  HANDLE hChangeHandle   // handle to change notification
    # );
    attach_function :FindNextChangeNotification, [:long], :int

    # DAORD WaitForMultipleObjects(
    #   DWORD nCount,             // number of handles in array
    #   CONST HANDLE *lpHandles,  // object-handle array
    #   BOOL bWaitAll,            // wait option
    #   DWORD dwMilliseconds      // time-out interval
    # );
    attach_function :WaitForMultipleObjects, [:long, :pointer, :int, :long], :long

    # BOOL FindCloseChangeNotification(
    #   HANDLE hChangeHandle
    # );
    attach_function :FindCloseChangeNotification, [:long], :int
  end
end

Version data entries

154 entries across 62 versions & 4 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.5 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.5 vendor/bundle/gems/guard-1.0.3/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.4 vendor/bundle/gems/guard-1.0.3/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.4 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.4 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.3 vendor/bundle/gems/guard-1.0.3/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.3 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.3 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.2 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.2 vendor/bundle/gems/guard-1.0.3/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.2 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.1 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.1 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.1 vendor/bundle/gems/guard-1.0.3/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.0 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.0 vendor/bundle/gems/guard-1.0.3/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.7.0 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.6.9 vendor/bundle/gems/guard-1.0.1/lib/vendor/windows/lib/rb-fchange/native.rb
classiccms-0.6.9 vendor/bundle/gems/guard-1.0.2/lib/vendor/windows/lib/rb-fchange/native.rb