예제 #1
0
        public static dsn_task_t CopyRemoteFiles(
            dsn_address_t remote,
            string source_dir,
            string[] files,
            string dest_dir,
            bool overwrite,
            TaskCode callbackCode,
            Servicelet callbackOwner,
            AioHandler callback,
            int hash = 0
            )
        {
            int        idx  = GlobalInterOpLookupTable.Put(callback);
            dsn_task_t task = Native.dsn_file_create_aio_task(callbackCode, _c_aio_handler_holder, (IntPtr)idx, hash);

            Native.dsn_file_copy_remote_files(remote, source_dir, files, dest_dir, overwrite, task, callbackOwner != null ? callbackOwner.tracker() : IntPtr.Zero);
            return(task);
        }
예제 #2
0
파일: Clientlet.cs 프로젝트: zmyer/rDSN
        public static SafeTaskHandle CopyRemoteFiles(
            ulong remote,
            string source_dir,
            string[] files,
            string dest_dir,
            bool overwrite,
            TaskCode callbackCode,
            Clientlet callbackOwner,
            AioHandler callback,
            int hash = 0
            )
        {
            var idx  = GlobalInterOpLookupTable.Put(callback);
            var task = Native.dsn_file_create_aio_task(callbackCode, _c_aio_handler_holder, (IntPtr)idx, hash, callbackOwner?.tracker() ?? IntPtr.Zero);

            Native.dsn_file_copy_remote_files(remote, source_dir, files, dest_dir, overwrite, task);
            return(new SafeTaskHandle(task, idx));
        }