1 /* Copyright (c) Mark Harmstone 2017
3 * This file is part of WinBtrfs.
5 * WinBtrfs is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public Licence as published by
7 * the Free Software Foundation, either version 3 of the Licence, or
8 * (at your option) any later version.
10 * WinBtrfs is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public Licence for more details.
15 * You should have received a copy of the GNU Lesser General Public Licence
16 * along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
29 extern LONG objs_loaded
;
41 master
= INVALID_HANDLE_VALUE
;
42 dir
= INVALID_HANDLE_VALUE
;
51 virtual ~BtrfsRecv() {
55 void Open(HWND hwnd
, WCHAR
* file
, WCHAR
* path
, BOOL quiet
);
57 INT_PTR CALLBACK
RecvProgressDlgProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
60 BOOL
cmd_subvol(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
61 BOOL
cmd_snapshot(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
62 BOOL
cmd_mkfile(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
63 BOOL
cmd_rename(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
64 BOOL
cmd_link(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
65 BOOL
cmd_unlink(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
66 BOOL
cmd_rmdir(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
67 BOOL
cmd_setxattr(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
68 BOOL
cmd_removexattr(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
69 BOOL
cmd_write(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
70 BOOL
cmd_clone(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
71 BOOL
cmd_truncate(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
72 BOOL
cmd_chmod(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
73 BOOL
cmd_chown(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
74 BOOL
cmd_utimes(HWND hwnd
, btrfs_send_command
* cmd
, UINT8
* data
);
75 void add_cache_entry(BTRFS_UUID
* uuid
, UINT64 transid
, std::wstring path
);
76 BOOL
utf8_to_utf16(HWND hwnd
, char* utf8
, ULONG utf8len
, std::wstring
* utf16
);
77 void ShowRecvError(int resid
, ...);
78 BOOL
find_tlv(UINT8
* data
, ULONG datalen
, UINT16 type
, void** value
, ULONG
* len
);
79 BOOL
do_recv(HANDLE f
, UINT64
* pos
, UINT64 size
);
81 HANDLE dir
, parent
, master
, thread
, lastwritefile
;
83 std::wstring streamfile
, dirpath
, subvolpath
, lastwritepath
;
87 BTRFS_UUID subvol_uuid
;
88 BOOL running
, cancelling
;
89 std::vector
<subvol_cache
> cache
;