CmisSync.MacWatcher.DoCallback C# (CSharp) Метод

DoCallback() приватный Метод

private DoCallback ( IntPtr streamRef, IntPtr clientCallBackInfo, int numEvents, IntPtr eventPaths, IntPtr eventFlags, IntPtr eventIds ) : void
streamRef System.IntPtr
clientCallBackInfo System.IntPtr
numEvents int
eventPaths System.IntPtr
eventFlags System.IntPtr
eventIds System.IntPtr
Результат void
        private void DoCallback (IntPtr streamRef, IntPtr clientCallBackInfo,
            int numEvents, IntPtr eventPaths, IntPtr eventFlags, IntPtr eventIds)
        {
            int bytes = Marshal.SizeOf(typeof(IntPtr));
            string[] paths = new string[numEvents];

            for (int i = 0; i < numEvents; ++i) {
                IntPtr p = Marshal.ReadIntPtr(eventPaths, i * bytes);
                paths[i] = Marshal.PtrToStringAnsi(p);
                checkDirectory(paths[i]);
            }

            var handler = Changed;
            if (handler != null) {
                string path = paths[0];
                path = path.Substring(Path.Length);
                path = path.Trim("/".ToCharArray());
                handler(path);
            }

            GC.KeepAlive(this);
        }