From ad3a7a32190504f285ee7d74a2f3efe48756663f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 09:44:44 +0100 Subject: [PATCH 01/11] Commit --- README.md | 2 +- include/stdafx.h | 11 +++---- include/sync_root_interface/SyncRoot.h | 7 ++--- .../sync_root_interface/callbacks/Callbacks.h | 2 -- native-src/main.cpp | 6 +--- native-src/sync_root_interface/SyncRoot.cpp | 29 +++++++------------ .../virtual_drive/connect_sync_root.cpp | 22 ++------------ native-src/virtual_drive/dehydrate_file.cpp | 3 +- .../virtual_drive/disconnect_sync_root.cpp | 5 ++-- native-src/virtual_drive/hydrate_file.cpp | 6 ++-- .../register_sync_root/register_sync_root.cpp | 1 - 11 files changed, 32 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 1b4cf2bc..95fadfc8 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/internxt/node-win) \ No newline at end of file +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/internxt/node-win) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=coverage)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=internxt_node-win&metric=bugs)](https://sonarcloud.io/summary/new_code?id=internxt_node-win) diff --git a/include/stdafx.h b/include/stdafx.h index de7986e5..d648e597 100644 --- a/include/stdafx.h +++ b/include/stdafx.h @@ -19,17 +19,18 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include #include #include -namespace winrt { +namespace winrt +{ using namespace Windows::Foundation; using namespace Windows::Storage; using namespace Windows::Storage::Streams; diff --git a/include/sync_root_interface/SyncRoot.h b/include/sync_root_interface/SyncRoot.h index 4864fa34..d14dd3d9 100644 --- a/include/sync_root_interface/SyncRoot.h +++ b/include/sync_root_interface/SyncRoot.h @@ -9,9 +9,6 @@ class SyncRoot { public: - static HRESULT ConnectSyncRoot(const wchar_t *syncRootPath, InputSyncCallbacks syncCallbacks, napi_env env, CF_CONNECTION_KEY *connectionKey); - static HRESULT DisconnectSyncRoot(const wchar_t *syncRootPath); - -private: - CF_CONNECTION_KEY connectionKey; + static void ConnectSyncRoot(const wchar_t *syncRootPath, InputSyncCallbacks syncCallbacks, napi_env env); + static void DisconnectSyncRoot(const wchar_t *syncRootPath); }; diff --git a/include/sync_root_interface/callbacks/Callbacks.h b/include/sync_root_interface/callbacks/Callbacks.h index 381e25cd..b4c57ae7 100644 --- a/include/sync_root_interface/callbacks/Callbacks.h +++ b/include/sync_root_interface/callbacks/Callbacks.h @@ -2,10 +2,8 @@ #include -// Fetch Data Callback void register_threadsafe_fetch_data_callback(const std::string &resource_name, napi_env env, InputSyncCallbacks input); void CALLBACK fetch_data_callback_wrapper(_In_ CONST CF_CALLBACK_INFO *callbackInfo, _In_ CONST CF_CALLBACK_PARAMETERS *callbackParameters); -// Fetch Data Cancel Callback void register_threadsafe_cancel_fetch_data_callback(const std::string &resource_name, napi_env env, InputSyncCallbacks input); void CALLBACK cancel_fetch_data_callback_wrapper(_In_ CONST CF_CALLBACK_INFO *callbackInfo, _In_ CONST CF_CALLBACK_PARAMETERS *callbackParameters); diff --git a/native-src/main.cpp b/native-src/main.cpp index ddb1a1e8..f8e07b7d 100644 --- a/native-src/main.cpp +++ b/native-src/main.cpp @@ -20,11 +20,7 @@ napi_value init(napi_env env, napi_value exports) size_t property_count = sizeof(properties) / sizeof(properties[0]); - if (napi_define_properties(env, exports, property_count, properties) != napi_ok) - { - napi_throw_error(env, nullptr, "Failed to define properties"); - return nullptr; - } + napi_define_properties(env, exports, property_count, properties); return exports; } diff --git a/native-src/sync_root_interface/SyncRoot.cpp b/native-src/sync_root_interface/SyncRoot.cpp index 4a135d5f..6f02babf 100644 --- a/native-src/sync_root_interface/SyncRoot.cpp +++ b/native-src/sync_root_interface/SyncRoot.cpp @@ -2,13 +2,12 @@ #include "SyncRoot.h" #include "stdafx.h" #include -#include "Logger.h" #include #include std::map connectionMap; -HRESULT SyncRoot::ConnectSyncRoot(const wchar_t *syncRootPath, InputSyncCallbacks syncCallbacks, napi_env env, CF_CONNECTION_KEY *connectionKey) +void SyncRoot::ConnectSyncRoot(const wchar_t *syncRootPath, InputSyncCallbacks syncCallbacks, napi_env env) { register_threadsafe_fetch_data_callback("FetchDataThreadSafe", env, syncCallbacks); register_threadsafe_cancel_fetch_data_callback("CancelFetchDataThreadSafe", env, syncCallbacks); @@ -18,35 +17,29 @@ HRESULT SyncRoot::ConnectSyncRoot(const wchar_t *syncRootPath, InputSyncCallback {CF_CALLBACK_TYPE_CANCEL_FETCH_DATA, cancel_fetch_data_callback_wrapper}, CF_CALLBACK_REGISTRATION_END}; + CF_CONNECTION_KEY connectionKey; + HRESULT hr = CfConnectSyncRoot( syncRootPath, callbackTable, nullptr, CF_CONNECT_FLAG_REQUIRE_PROCESS_INFO | CF_CONNECT_FLAG_REQUIRE_FULL_FILE_PATH, - connectionKey); - - wprintf(L"Connection key: %llu\n", connectionKey->Internal); + &connectionKey); - if (SUCCEEDED(hr)) - { - connectionMap[syncRootPath] = *connectionKey; - } + winrt::check_hresult(hr); - return hr; + connectionMap[syncRootPath] = connectionKey; } -// disconection sync root -HRESULT SyncRoot::DisconnectSyncRoot(const wchar_t *syncRootPath) +void SyncRoot::DisconnectSyncRoot(const wchar_t *syncRootPath) { auto it = connectionMap.find(syncRootPath); if (it != connectionMap.end()) { HRESULT hr = CfDisconnectSyncRoot(it->second); - if (SUCCEEDED(hr)) - { - connectionMap.erase(it); - } - return hr; + + winrt::check_hresult(hr); + + connectionMap.erase(it); } - return E_FAIL; } diff --git a/native-src/virtual_drive/connect_sync_root.cpp b/native-src/virtual_drive/connect_sync_root.cpp index 6346ea39..3a210d9f 100644 --- a/native-src/virtual_drive/connect_sync_root.cpp +++ b/native-src/virtual_drive/connect_sync_root.cpp @@ -10,7 +10,7 @@ napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) size_t pathLength; napi_get_value_string_utf16(env, argv[0], nullptr, 0, &pathLength); std::wstring syncRootPath(pathLength, L'\0'); - napi_get_value_string_utf16(env, argv[0], reinterpret_cast(&syncRootPath[0]), pathLength + 1, nullptr); + napi_get_value_string_utf16(env, argv[0], reinterpret_cast(&syncRootPath[0]), pathLength + 1, nullptr); InputSyncCallbacks callbacks = {}; @@ -22,23 +22,7 @@ napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) napi_get_named_property(env, argv[1], "cancelFetchDataCallback", &cancelFetchDataCallback); napi_create_reference(env, cancelFetchDataCallback, 1, &callbacks.cancel_fetch_data_callback_ref); - CF_CONNECTION_KEY connectionKey; - HRESULT hr = SyncRoot::ConnectSyncRoot(syncRootPath.c_str(), callbacks, env, &connectionKey); + SyncRoot::ConnectSyncRoot(syncRootPath.c_str(), callbacks); - if (FAILED(hr)) { - napi_throw_error(env, nullptr, "ConnectSyncRoot failed"); - return nullptr; - } - - napi_value resultObj, hrValue, connectionKeyValue; - napi_create_object(env, &resultObj); - - napi_create_int32(env, static_cast(hr), &hrValue); - napi_set_named_property(env, resultObj, "hr", hrValue); - - std::wstring connectionKeyString = std::to_wstring(connectionKey.Internal); - napi_create_string_utf16(env, reinterpret_cast(connectionKeyString.c_str()), connectionKeyString.length(), &connectionKeyValue); - napi_set_named_property(env, resultObj, "connectionKey", connectionKeyValue); - - return resultObj; + return nullptr; } diff --git a/native-src/virtual_drive/dehydrate_file.cpp b/native-src/virtual_drive/dehydrate_file.cpp index 857d7803..a6d9ef72 100644 --- a/native-src/virtual_drive/dehydrate_file.cpp +++ b/native-src/virtual_drive/dehydrate_file.cpp @@ -1,6 +1,7 @@ #include #include "napi_extract_args.h" #include "stdafx.h" +#include "Placeholders.h" napi_value dehydrate_file(napi_env env, napi_callback_info info) { @@ -13,7 +14,7 @@ napi_value dehydrate_file(napi_env env, napi_callback_info info) throw std::runtime_error("Cannot dehydrate folder"); } - winrt::handle fileHandle(CreateFileW(path.c_str(), 0, FILE_READ_DATA, nullptr, OPEN_EXISTING, 0, nullptr)); + auto fileHandle = Placeholders::OpenFileHandle(path, FILE_WRITE_ATTRIBUTES, true); LARGE_INTEGER offset; offset.QuadPart = 0; diff --git a/native-src/virtual_drive/disconnect_sync_root.cpp b/native-src/virtual_drive/disconnect_sync_root.cpp index 66872479..fe84245f 100644 --- a/native-src/virtual_drive/disconnect_sync_root.cpp +++ b/native-src/virtual_drive/disconnect_sync_root.cpp @@ -2,10 +2,11 @@ #include "napi_extract_args.h" #include "SyncRoot.h" -napi_value disconnect_sync_root(napi_env env, napi_callback_info info) { +napi_value disconnect_sync_root(napi_env env, napi_callback_info info) +{ auto [syncRootPath] = napi_extract_args(env, info); - HRESULT result = SyncRoot::DisconnectSyncRoot(syncRootPath.c_str()); + SyncRoot::DisconnectSyncRoot(syncRootPath.c_str()); return nullptr; } diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index a5b1b152..0c58e2e1 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,8 +1,8 @@ #include #include -#include +#include +#include "Placeholders.h" #include "napi_extract_args.h" -#include "SyncRoot.h" struct AsyncWork { @@ -22,7 +22,7 @@ void hydrate_file(const std::wstring &path) throw std::runtime_error("Cannot hydrate folder"); } - winrt::handle fileHandle(CreateFileW(path.c_str(), 0, FILE_READ_DATA, nullptr, OPEN_EXISTING, 0, nullptr)); + auto fileHandle = Placeholders::OpenFileHandle(path, FILE_WRITE_ATTRIBUTES, true); LARGE_INTEGER offset; offset.QuadPart = 0; diff --git a/native-src/virtual_drive/register_sync_root/register_sync_root.cpp b/native-src/virtual_drive/register_sync_root/register_sync_root.cpp index be1eabe0..a835b3d0 100644 --- a/native-src/virtual_drive/register_sync_root/register_sync_root.cpp +++ b/native-src/virtual_drive/register_sync_root/register_sync_root.cpp @@ -2,7 +2,6 @@ #include "SyncRoot.h" #include "stdafx.h" #include -#include "Logger.h" #include #include From 4a874c3c63ca7fac194bee6359b578130ae12c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 09:45:31 +0100 Subject: [PATCH 02/11] Update connect_sync_root.cpp --- native-src/virtual_drive/connect_sync_root.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/native-src/virtual_drive/connect_sync_root.cpp b/native-src/virtual_drive/connect_sync_root.cpp index 3a210d9f..6701d7cf 100644 --- a/native-src/virtual_drive/connect_sync_root.cpp +++ b/native-src/virtual_drive/connect_sync_root.cpp @@ -22,7 +22,7 @@ napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) napi_get_named_property(env, argv[1], "cancelFetchDataCallback", &cancelFetchDataCallback); napi_create_reference(env, cancelFetchDataCallback, 1, &callbacks.cancel_fetch_data_callback_ref); - SyncRoot::ConnectSyncRoot(syncRootPath.c_str(), callbacks); + SyncRoot::ConnectSyncRoot(syncRootPath.c_str(), callbacks, env); return nullptr; } From f199172f5b4866b58c7c5cb03fc3306980c39a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 09:48:55 +0100 Subject: [PATCH 03/11] Update addon.node --- dist/addon.node | Bin 599040 -> 598016 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dist/addon.node b/dist/addon.node index 35fe60b190b6c3331298e632eb41bf9e98f4495e..97ddccb5a82aed5e1c75f579ae46ff73c2414b5f 100644 GIT binary patch delta 124454 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 Date: Tue, 4 Nov 2025 10:07:51 +0100 Subject: [PATCH 04/11] Commit --- include/stdafx.h | 4 ++-- native-src/virtual_drive/connect_sync_root.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/stdafx.h b/include/stdafx.h index d648e597..d55c1e3d 100644 --- a/include/stdafx.h +++ b/include/stdafx.h @@ -19,10 +19,10 @@ #include #include #include -#include +#include #include #include -#include +#include #include #include #include diff --git a/native-src/virtual_drive/connect_sync_root.cpp b/native-src/virtual_drive/connect_sync_root.cpp index 6701d7cf..ae38d170 100644 --- a/native-src/virtual_drive/connect_sync_root.cpp +++ b/native-src/virtual_drive/connect_sync_root.cpp @@ -1,4 +1,4 @@ -#include +#include "windows.h" #include "SyncRoot.h" napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) From 2f6a9c3ea17f10c368897abf795015c88f58f12e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 10:16:48 +0100 Subject: [PATCH 05/11] Commit --- native-src/virtual_drive/connect_sync_root.cpp | 2 +- native-src/virtual_drive/hydrate_file.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/native-src/virtual_drive/connect_sync_root.cpp b/native-src/virtual_drive/connect_sync_root.cpp index ae38d170..ccf55399 100644 --- a/native-src/virtual_drive/connect_sync_root.cpp +++ b/native-src/virtual_drive/connect_sync_root.cpp @@ -1,4 +1,4 @@ -#include "windows.h" +#include "Windows.h #include "SyncRoot.h" napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index 0c58e2e1..bedfe4cd 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,6 +1,6 @@ -#include -#include -#include +#include "thread" +#include "string" +#include "Windows.h #include "Placeholders.h" #include "napi_extract_args.h" From 9de9b2a5091338e9e16815738d2d9aed37dbc3de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 10:24:37 +0100 Subject: [PATCH 06/11] Commit --- .../placeholders_interface/PlaceHolderInfo.h | 2 +- include/stdafx.h | 2 -- include/sync_root_interface/SyncRoot.h | 2 +- include/sync_root_interface/TransferContext.h | 13 +++---- .../callbacks/CallbacksContext.h | 5 +-- .../register_sync_root/register_sync_root.h | 2 +- native-src/main.cpp | 2 +- native-src/virtual_drive/Wrappers.cpp | 34 +++++++++---------- .../virtual_drive/connect_sync_root.cpp | 4 +-- .../virtual_drive/convert_to_placeholder.cpp | 6 ++-- .../create_folder_placeholder.cpp | 6 ++-- native-src/virtual_drive/dehydrate_file.cpp | 6 ++-- .../virtual_drive/disconnect_sync_root.cpp | 4 +-- .../get_placeholder_state_wrapper.cpp | 4 +-- .../get_registered_sync_roots.cpp | 10 +++--- .../get_registered_sync_roots_wrapper.cpp | 14 +++++--- native-src/virtual_drive/hydrate_file.cpp | 10 +++--- .../register_sync_root/register_sync_root.cpp | 6 ++-- .../register_sync_root_wrapper.cpp | 7 ++-- .../update_sync_status_wrapper.cpp | 4 +-- 20 files changed, 75 insertions(+), 68 deletions(-) diff --git a/include/placeholders_interface/PlaceHolderInfo.h b/include/placeholders_interface/PlaceHolderInfo.h index fa0514fc..420f8334 100644 --- a/include/placeholders_interface/PlaceHolderInfo.h +++ b/include/placeholders_interface/PlaceHolderInfo.h @@ -1,6 +1,6 @@ #pragma once -#include "stdafx.h" +#include #include struct FileState diff --git a/include/stdafx.h b/include/stdafx.h index d55c1e3d..7d45e718 100644 --- a/include/stdafx.h +++ b/include/stdafx.h @@ -38,5 +38,3 @@ namespace winrt using namespace Windows::Foundation::Collections; using namespace Windows::Security::Cryptography; } - -#include "Utilities.h" diff --git a/include/sync_root_interface/SyncRoot.h b/include/sync_root_interface/SyncRoot.h index d14dd3d9..25cb7777 100644 --- a/include/sync_root_interface/SyncRoot.h +++ b/include/sync_root_interface/SyncRoot.h @@ -2,7 +2,7 @@ #include #include -#include "stdafx.h" +#include #include #include diff --git a/include/sync_root_interface/TransferContext.h b/include/sync_root_interface/TransferContext.h index dc8ef415..c56f8cb3 100644 --- a/include/sync_root_interface/TransferContext.h +++ b/include/sync_root_interface/TransferContext.h @@ -4,14 +4,15 @@ #include #include #include -#include "stdafx.h" +#include #include -#include "Logger.h" -#include "Utilities.h" -#include "Placeholders.h" -#include "FileCopierWithProgress.h" +#include +#include +#include +#include -struct TransferContext { +struct TransferContext +{ CF_CONNECTION_KEY connectionKey; CF_TRANSFER_KEY transferKey; LARGE_INTEGER fileSize; diff --git a/include/sync_root_interface/callbacks/CallbacksContext.h b/include/sync_root_interface/callbacks/CallbacksContext.h index ccd8e9ab..22563d92 100644 --- a/include/sync_root_interface/callbacks/CallbacksContext.h +++ b/include/sync_root_interface/callbacks/CallbacksContext.h @@ -7,9 +7,10 @@ #include #include #include -#include "stdafx.h" +#include -struct InputSyncCallbacks { +struct InputSyncCallbacks +{ napi_ref fetch_data_callback_ref; napi_ref cancel_fetch_data_callback_ref; }; \ No newline at end of file diff --git a/include/virtual_drive/register_sync_root/register_sync_root.h b/include/virtual_drive/register_sync_root/register_sync_root.h index bbe45f13..b5c0b13a 100644 --- a/include/virtual_drive/register_sync_root/register_sync_root.h +++ b/include/virtual_drive/register_sync_root/register_sync_root.h @@ -2,7 +2,7 @@ #include #include -#include "stdafx.h" +#include #include #include diff --git a/native-src/main.cpp b/native-src/main.cpp index f8e07b7d..13f986fd 100644 --- a/native-src/main.cpp +++ b/native-src/main.cpp @@ -1,5 +1,5 @@ #include -#include "Wrappers.h" +#include napi_value init(napi_env env, napi_value exports) { diff --git a/native-src/virtual_drive/Wrappers.cpp b/native-src/virtual_drive/Wrappers.cpp index 2e087185..337f0dab 100644 --- a/native-src/virtual_drive/Wrappers.cpp +++ b/native-src/virtual_drive/Wrappers.cpp @@ -1,26 +1,26 @@ -#include "stdafx.h" +#include #include -#include "Placeholders.h" -#include "Callbacks.h" -#include "LoggerPath.h" +#include +#include +#include #include #include #include #include #include -#include "register_sync_root_wrapper.h" -#include "create_folder_placeholder.h" -#include "create_file_placeholder.h" -#include "connect_sync_root.h" -#include "hydrate_file.h" -#include "convert_to_placeholder.h" -#include "get_registered_sync_roots_wrapper.h" -#include "unregister_sync_root_wrapper.h" -#include "dehydrate_file.h" -#include "disconnect_sync_root.h" -#include "get_placeholder_state_wrapper.h" -#include "update_sync_status_wrapper.h" -#include "NAPI_SAFE_WRAP.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include napi_value CreateFilePlaceholderWrapper(napi_env env, napi_callback_info args) { diff --git a/native-src/virtual_drive/connect_sync_root.cpp b/native-src/virtual_drive/connect_sync_root.cpp index ccf55399..eb28e02b 100644 --- a/native-src/virtual_drive/connect_sync_root.cpp +++ b/native-src/virtual_drive/connect_sync_root.cpp @@ -1,5 +1,5 @@ -#include "Windows.h -#include "SyncRoot.h" +#include +#include napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) { diff --git a/native-src/virtual_drive/convert_to_placeholder.cpp b/native-src/virtual_drive/convert_to_placeholder.cpp index cbf4ab54..a88bcd6b 100644 --- a/native-src/virtual_drive/convert_to_placeholder.cpp +++ b/native-src/virtual_drive/convert_to_placeholder.cpp @@ -1,8 +1,8 @@ #include #include -#include "stdafx.h" -#include "napi_extract_args.h" -#include "Placeholders.h" +#include +#include +#include void convert_to_placeholder(const std::wstring &path, const std::wstring &placeholderId) { diff --git a/native-src/virtual_drive/create_folder_placeholder.cpp b/native-src/virtual_drive/create_folder_placeholder.cpp index b64b3d0e..f8bc9e9d 100644 --- a/native-src/virtual_drive/create_folder_placeholder.cpp +++ b/native-src/virtual_drive/create_folder_placeholder.cpp @@ -1,8 +1,8 @@ #include #include -#include "Placeholders.h" -#include "convert_to_placeholder.h" -#include "napi_extract_args.h" +#include +#include +#include napi_value create_folder_placeholder_impl(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/dehydrate_file.cpp b/native-src/virtual_drive/dehydrate_file.cpp index a6d9ef72..827fdb4e 100644 --- a/native-src/virtual_drive/dehydrate_file.cpp +++ b/native-src/virtual_drive/dehydrate_file.cpp @@ -1,7 +1,7 @@ #include -#include "napi_extract_args.h" -#include "stdafx.h" -#include "Placeholders.h" +#include +#include +#include napi_value dehydrate_file(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/disconnect_sync_root.cpp b/native-src/virtual_drive/disconnect_sync_root.cpp index fe84245f..506e9731 100644 --- a/native-src/virtual_drive/disconnect_sync_root.cpp +++ b/native-src/virtual_drive/disconnect_sync_root.cpp @@ -1,6 +1,6 @@ #include -#include "napi_extract_args.h" -#include "SyncRoot.h" +#include +#include napi_value disconnect_sync_root(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp b/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp index feb93b8c..a22e4512 100644 --- a/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp +++ b/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp @@ -1,6 +1,6 @@ #include -#include "napi_extract_args.h" -#include "Placeholders.h" +#include +#include napi_value get_placeholder_state_wrapper(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp index 447cb1a1..8aff2ac6 100644 --- a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp +++ b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp @@ -1,15 +1,17 @@ -#include "stdafx.h" +#include #include #include #include -#include "get_registered_sync_roots.h" +#include -std::vector get_registered_sync_roots() { +std::vector get_registered_sync_roots() +{ std::vector syncRootList; auto syncRoots = winrt::StorageProviderSyncRootManager::GetCurrentSyncRoots(); - for (auto const &info : syncRoots) { + for (auto const &info : syncRoots) + { SyncRoots sr; sr.id = info.Id(); sr.path = info.Path().Path(); diff --git a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp index d44f75a4..ab42cc6b 100644 --- a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp +++ b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp @@ -2,27 +2,31 @@ #include #include #include -#include "get_registered_sync_roots.h" +#include -std::string WStringToUTF8(const std::wstring &wstr) { +std::string WStringToUTF8(const std::wstring &wstr) +{ std::wstring_convert> conv; return conv.to_bytes(wstr); } -void add_string_property(napi_env env, napi_value obj, const char* key, const std::wstring& value) { +void add_string_property(napi_env env, napi_value obj, const char *key, const std::wstring &value) +{ std::string utf8Value = WStringToUTF8(value); napi_value napiValue; napi_create_string_utf8(env, utf8Value.c_str(), utf8Value.size(), &napiValue); napi_set_named_property(env, obj, key, napiValue); } -napi_value get_registered_sync_roots_wrapper(napi_env env, napi_callback_info args) { +napi_value get_registered_sync_roots_wrapper(napi_env env, napi_callback_info args) +{ std::vector roots = get_registered_sync_roots(); napi_value jsArray; napi_create_array_with_length(env, roots.size(), &jsArray); - for (size_t i = 0; i < roots.size(); i++) { + for (size_t i = 0; i < roots.size(); i++) + { napi_value jsObj; napi_create_object(env, &jsObj); diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index bedfe4cd..c5a06b12 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,8 +1,8 @@ -#include "thread" -#include "string" -#include "Windows.h -#include "Placeholders.h" -#include "napi_extract_args.h" +#include +#include +#include +#include +#include struct AsyncWork { diff --git a/native-src/virtual_drive/register_sync_root/register_sync_root.cpp b/native-src/virtual_drive/register_sync_root/register_sync_root.cpp index a835b3d0..3ac38fa1 100644 --- a/native-src/virtual_drive/register_sync_root/register_sync_root.cpp +++ b/native-src/virtual_drive/register_sync_root/register_sync_root.cpp @@ -1,6 +1,6 @@ -#include "Callbacks.h" -#include "SyncRoot.h" -#include "stdafx.h" +#include +#include +#include #include #include #include diff --git a/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp b/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp index f72ea175..a163be0c 100644 --- a/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp +++ b/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp @@ -1,8 +1,9 @@ #include -#include "napi_extract_args.h" -#include "register_sync_root.h" +#include +#include -napi_value register_sync_root_wrapper(napi_env env, napi_callback_info info) { +napi_value register_sync_root_wrapper(napi_env env, napi_callback_info info) +{ auto [syncRootPath, providerName, providerVersion, providerId, logoPath] = napi_extract_args(env, info); diff --git a/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp b/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp index a314a09e..3cb8938d 100644 --- a/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp +++ b/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp @@ -1,6 +1,6 @@ #include -#include "Placeholders.h" -#include "napi_extract_args.h" +#include +#include napi_value update_sync_status_wrapper(napi_env env, napi_callback_info info) { From ff5a19babd3c413eb905fc1028ffbbeeaeead25f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 10:36:50 +0100 Subject: [PATCH 07/11] Commit --- dist/addon.node | Bin 598016 -> 598016 bytes native-src/logger/Logger.cpp | 67 ++++--- native-src/logger/LoggerPath.cpp | 8 +- .../PlaceHolderInfo.cpp | 4 +- .../placeholders_interface/Planceholders.cpp | 10 +- native-src/sync_root_interface/SyncRoot.cpp | 6 +- native-src/sync_root_interface/Utilities.cpp | 4 +- .../CancelFetchDataCallback.cpp | 24 ++- .../callbacks/FetchData/FetchData.cpp | 173 ++++++++++-------- .../FetchData/FileCopierWithProgress.cpp | 8 +- .../callbacks/FetchData/TransferContext.cpp | 19 +- .../virtual_drive/create_file_placeholder.cpp | 7 +- .../create_folder_placeholder.cpp | 1 + native-src/virtual_drive/hydrate_file.cpp | 2 +- .../unregister_sync_root_wrapper.cpp | 7 +- 15 files changed, 195 insertions(+), 145 deletions(-) diff --git a/dist/addon.node b/dist/addon.node index 97ddccb5a82aed5e1c75f579ae46ff73c2414b5f..2733878219c4aba83a107468c04317f9f7f83bc3 100644 GIT binary patch delta 1018 zcmZuwYe-XJ82;X~o%2m=d8y@GR;$eRBfCMF2ASscC`II@8{OtSwUz1G&bokvC}kzH zkm_xj-F{V;NJSrH&B9To`e*BaJ;wi4>fT@Ag!B=uz z;WIg4Y-VE?gDuv0ze6G`0%CCjA^lHqYc5#QhMZhq*Aepg?^qG|)4P$^1JPb-K_=I` za2cPI7ErEN;ss6DS-4J*=J9(j_`$?H%Rwik?{AOp6UsFY^6!q!k$Us=sBg&5y%I-! z-`ZhPa<*pspRq#r*$(}4;TXR0gA9k*tUcfXK|FxLy>K0tvVwge=%EFRYG5iL?$Br_ z9@S_$yIKPqL@+S14!Qt3*`s=B55A6|tavGS(iNEiw?9&lYA?5tee_JMxv=p)WMmPzeVsZe^0qv(=a|vr{T*UIu#0V_X}#m&0!jwRIF@w`&7kSvcJk%TwSfM z^*THr#fuGE_q;GQV<=2*`aHMKiSxrW33a`6W>T4_!l5eKOo{4H{l4E**}XIwBVlUQ z7^#Nu9untJNmejr;jef?mlWYxJNIGkv^IN1k=;#475e)JgklI#&r>D!_yJ! z(T;d#?Wa~q;NN&OLL-#F5Ldsa+14&`e9gDuwVWgRHgS_um{uhuJaC>XF1=HlMPFQT zsjTBY?Sib2-7#)$P~gy(>*pGX-ek~H*AqBgyyp5-!}bAc;eRlDG(eZy;%V49 ld&<*`IrmOna=p$sU2HI$49skb`ARXA7&C#TPL6pk`~sgRT+RRh delta 1021 zcmZ`&Z){Ul6u-Z>_T3IG+km=Swpek@#RNeT9gG08((#ZX*iDTD#Qu4@DUPmm2yrIM zCT?sg5)*S$$H;i`gF09y1aC64*q9|6B9Tw{!RQCmZXFqkOp>A|;(6ONCg@GhIlp^; z=bYckyLnxis;*4cm={|AM2`>32b4bH{(W2*b0uZL!hpLlPPMhT_+W%n`TbY^ykn%C zTNoQD&j^R(KNuxDt{N$Kzq)4wYL>Xqj_IN?{561Mul{QO4(~o^f?(ALCS! z5a0g$G^X62E%dG5$ow0W;o7?OlJTzpukH3Rzve&qcDfb7TiB)IPoYR#^VsP8N?OF0 z7I#axFYxcLT96L%%FE`ZY1qb*t+othf>^2k2;%3p_>O++fPpsk@DaqJ-FTbQZ{j?v z)%K&%98mOhCmz6i^qL)_)NhAP>eEi_bwVg-Hzt8Wb-4#8HB_k=-^C4-=y6?ilp6y9 zm$Au-xO%P+-Kdy3sEd;0K?w16FwdUD?0p>g5iIrV2_#WLuisr#xlj^NJp=dvc!%y! z;WT>H=PBIMFsDXNq06;2e1Ik0i<0|jV;Z}cO}=DLt7WOh{1^0L8ZkVh?xYa`c2Z;z zC-ITGIf&YJAJ6rbkCZ>H@L)3QQqjnUG)4AId%k9s-J+;CpT`5}vEWG%`b zxA*6hnfIchh@QPJxBA<(vah0NLe1mNb@JLLEy+pe^3LDV=bk*_7;)}5cT}sf>v9rx z{S(ElcB95-e+kE0mvDGoc1rxs-OG3dTMKh7|8O)qD}DUes>`!-OHJv@b*uO8{&J%6 t)TO{9u5FtOy +#include -Logger::Logger() : log_file(LoggerPath::get(), std::ios::app) { +Logger::Logger() : log_file(LoggerPath::get(), std::ios::app) +{ std::wstring widePath = fromUtf8ToWide(LoggerPath::get()); wprintf(L"Logger path: %ls\n", widePath.c_str()); std::string path = LoggerPath::get(); - if (!log_file.is_open() && !path.empty()) { + if (!log_file.is_open() && !path.empty()) + { throw std::runtime_error("No se pudo abrir el archivo de log."); } } -Logger::~Logger() { - if (log_file.is_open()) { +Logger::~Logger() +{ + if (log_file.is_open()) + { log_file.close(); } } -std::wstring Logger::fromUtf8ToWide(const std::string& utf8Str) { - if (utf8Str.empty()) return std::wstring(); +std::wstring Logger::fromUtf8ToWide(const std::string &utf8Str) +{ + if (utf8Str.empty()) + return std::wstring(); int wideSize = MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, nullptr, 0); - if (wideSize <= 0) return std::wstring(); + if (wideSize <= 0) + return std::wstring(); std::unique_ptr wideStr(new wchar_t[wideSize]); MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, wideStr.get(), wideSize); @@ -29,7 +36,8 @@ std::wstring Logger::fromUtf8ToWide(const std::string& utf8Str) { return std::wstring(wideStr.get()); } -void Logger::log(const std::string &message, LogLevel level, WORD color) { +void Logger::log(const std::string &message, LogLevel level, WORD color) +{ std::lock_guard guard(log_mutex); auto now = std::chrono::system_clock::now(); @@ -51,31 +59,44 @@ void Logger::log(const std::string &message, LogLevel level, WORD color) { GetConsoleScreenBufferInfo(hConsole, &consoleInfo); WORD saved_attributes = consoleInfo.wAttributes; - if (color != 0) { + if (color != 0) + { SetConsoleTextAttribute(hConsole, color); } printf("[%s] [%s] %s\n", time_stream.str().c_str(), level_str.c_str(), message.c_str()); - if (color != 0) { + if (color != 0) + { SetConsoleTextAttribute(hConsole, saved_attributes); } } -std::string Logger::toString(LogLevel level) { - switch (level) { - case LogLevel::DEBUG: return "DEBUG"; - case LogLevel::INFO: return "INFO"; - case LogLevel::WARN: return "WARN"; - case LogLevel::TRACE: return "TRACE"; - case LogLevel::ERROR: return "ERROR"; - case LogLevel::FATAL: return "FATAL"; - default: return "UNKNOWN"; +std::string Logger::toString(LogLevel level) +{ + switch (level) + { + case LogLevel::DEBUG: + return "DEBUG"; + case LogLevel::INFO: + return "INFO"; + case LogLevel::WARN: + return "WARN"; + case LogLevel::TRACE: + return "TRACE"; + case LogLevel::ERROR: + return "ERROR"; + case LogLevel::FATAL: + return "FATAL"; + default: + return "UNKNOWN"; } } -std::string Logger::fromWStringToString(const std::wstring wstr) { - if (wstr.empty()) return std::string(); +std::string Logger::fromWStringToString(const std::wstring wstr) +{ + if (wstr.empty()) + return std::string(); int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL); std::string strTo(size_needed, 0); diff --git a/native-src/logger/LoggerPath.cpp b/native-src/logger/LoggerPath.cpp index 99cddca9..b44766c9 100644 --- a/native-src/logger/LoggerPath.cpp +++ b/native-src/logger/LoggerPath.cpp @@ -1,14 +1,16 @@ -#include "LoggerPath.h" +#include std::string LoggerPath::path_ = ""; std::mutex LoggerPath::mutex_; -void LoggerPath::set(const std::string& path) { +void LoggerPath::set(const std::string &path) +{ std::lock_guard guard(mutex_); path_ = path; } -std::string LoggerPath::get() { +std::string LoggerPath::get() +{ std::lock_guard guard(mutex_); return path_; } \ No newline at end of file diff --git a/native-src/placeholders_interface/PlaceHolderInfo.cpp b/native-src/placeholders_interface/PlaceHolderInfo.cpp index efb60713..512d4efb 100644 --- a/native-src/placeholders_interface/PlaceHolderInfo.cpp +++ b/native-src/placeholders_interface/PlaceHolderInfo.cpp @@ -1,10 +1,10 @@ -#include "PlaceHolderInfo.h" +#include #include #include #include #include #include -#include "Logger.h" +#include FileHandle::FileHandle() : _data( diff --git a/native-src/placeholders_interface/Planceholders.cpp b/native-src/placeholders_interface/Planceholders.cpp index 56664ad4..57957285 100644 --- a/native-src/placeholders_interface/Planceholders.cpp +++ b/native-src/placeholders_interface/Planceholders.cpp @@ -1,7 +1,7 @@ -#include "stdafx.h" -#include "Placeholders.h" -#include "Logger.h" -#include "PlaceholderInfo.h" +#include +#include +#include +#include #include #include #include @@ -15,7 +15,7 @@ #include #include #include -#include "convert_to_placeholder.h" +#include #pragma comment(lib, "shlwapi.lib") diff --git a/native-src/sync_root_interface/SyncRoot.cpp b/native-src/sync_root_interface/SyncRoot.cpp index 6f02babf..b43b74e3 100644 --- a/native-src/sync_root_interface/SyncRoot.cpp +++ b/native-src/sync_root_interface/SyncRoot.cpp @@ -1,6 +1,6 @@ -#include "Callbacks.h" -#include "SyncRoot.h" -#include "stdafx.h" +#include +#include +#include #include #include #include diff --git a/native-src/sync_root_interface/Utilities.cpp b/native-src/sync_root_interface/Utilities.cpp index 98626db4..ae1ce7b9 100644 --- a/native-src/sync_root_interface/Utilities.cpp +++ b/native-src/sync_root_interface/Utilities.cpp @@ -1,8 +1,8 @@ -#include "stdafx.h" +#include #include #include #include -#include "Utilities.h" +#include #include DEFINE_PROPERTYKEY(PKEY_StorageProviderTransferProgress, 0xE77E90DF, 0x6271, 0x4F5B, 0x83, 0x4F, 0x2D, 0xD1, 0xF2, 0x45, 0xDD, 0xA4, 4); diff --git a/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp b/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp index cf72ffe4..5ab4e3b2 100644 --- a/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp +++ b/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include #include #include #include @@ -9,17 +9,19 @@ napi_threadsafe_function g_cancel_fetch_data_threadsafe_callback = nullptr; -struct CallbackContext { +struct CallbackContext +{ std::mutex mtx; std::condition_variable cv; bool ready = false; }; -struct CancelFetchDataArgs { +struct CancelFetchDataArgs +{ std::wstring fileIdentityArg; - CallbackContext* context; - - CancelFetchDataArgs(const std::wstring& fileId, CallbackContext* ctx) + CallbackContext *context; + + CancelFetchDataArgs(const std::wstring &fileId, CallbackContext *ctx) : fileIdentityArg(fileId), context(ctx) {} }; @@ -104,7 +106,7 @@ void CALLBACK cancel_fetch_data_callback_wrapper( wprintf(L"Callback fetch_data_callback_wrapper called but g_fetch_data_threadsafe_callback is null\n"); return; } - + CallbackContext context; CancelFetchDataArgs *args = new CancelFetchDataArgs(fileIdentityStr, &context); @@ -114,9 +116,13 @@ void CALLBACK cancel_fetch_data_callback_wrapper( std::unique_lock lock(context.mtx); auto timeout = std::chrono::seconds(30); - if (context.cv.wait_for(lock, timeout, [&context] { return context.ready; })) { + if (context.cv.wait_for(lock, timeout, [&context] + { return context.ready; })) + { wprintf(L"Cancel fetch completed\n"); - } else { + } + else + { wprintf(L"Cancel fetch timed out\n"); } } diff --git a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp index 3366060f..f631e67d 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include #include #include #include @@ -11,7 +11,7 @@ #include #include #include -#include "Utilities.h" +#include #include #include #include @@ -52,17 +52,18 @@ napi_value create_response(napi_env env, bool finished, float progress) return promise; } -static size_t file_incremental_reading(napi_env env, - TransferContext &ctx, - bool final_step, +static size_t file_incremental_reading(napi_env env, + TransferContext &ctx, + bool final_step, float &progress) { std::ifstream file; file.open(ctx.fullServerFilePath, std::ios::in | std::ios::binary); - if (!file.is_open()) { + if (!file.is_open()) + { Logger::getInstance().log("Error al abrir el archivo en file_incremental_reading.", LogLevel::ERROR); - return ctx.lastReadOffset; + return ctx.lastReadOffset; } file.clear(); @@ -70,10 +71,12 @@ static size_t file_incremental_reading(napi_env env, size_t newSize = static_cast(file.tellg()); size_t datasizeAvailableUnread = newSize - ctx.lastReadOffset; - size_t growth = newSize - ctx.lastSize; + size_t growth = newSize - ctx.lastSize; - try { - if (datasizeAvailableUnread > 0) { + try + { + if (datasizeAvailableUnread > 0) + { std::vector buffer(CHUNK_SIZE); file.seekg(ctx.lastReadOffset); file.read(buffer.data(), CHUNK_SIZE); @@ -93,7 +96,8 @@ static size_t file_incremental_reading(napi_env env, ctx.lastReadOffset += chunkBufferSize.QuadPart; - if (FAILED(hr)) { + if (FAILED(hr)) + { wprintf(L"Error en TransferData(). HRESULT: %lx\n", hr); ctx.loadFinished = true; FileCopierWithProgress::TransferData( @@ -103,17 +107,21 @@ static size_t file_incremental_reading(napi_env env, ctx.requiredOffset, ctx.requiredLength, STATUS_UNSUCCESSFUL); - } else { + } + else + { UINT64 totalSize = static_cast(ctx.fileSize.QuadPart); progress = static_cast(ctx.lastReadOffset) / static_cast(totalSize); - Utilities::ApplyTransferStateToFile(ctx.fullClientPath.c_str(), - ctx.callbackInfo, - totalSize, + Utilities::ApplyTransferStateToFile(ctx.fullClientPath.c_str(), + ctx.callbackInfo, + totalSize, ctx.lastReadOffset); - ::Sleep(CHUNKDELAYMS); + ::Sleep(CHUNKDELAYMS); } } - } catch (...) { + } + catch (...) + { Logger::getInstance().log("Excepción en file_incremental_reading.", LogLevel::ERROR); FileCopierWithProgress::TransferData( ctx.connectionKey, @@ -136,19 +144,22 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in size_t argc = 3; napi_value argv[3]; napi_status status = napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr); - if (status != napi_ok) { + if (status != napi_ok) + { Logger::getInstance().log("Failed to get callback info", LogLevel::ERROR); - return create_response(env, true, 0); + return create_response(env, true, 0); } - if (argc < 2) { + if (argc < 2) + { Logger::getInstance().log("This function must receive at least two arguments", LogLevel::ERROR); return create_response(env, true, 0); } napi_valuetype valueType; status = napi_typeof(env, argv[0], &valueType); - if (status != napi_ok || valueType != napi_boolean) { + if (status != napi_ok || valueType != napi_boolean) + { Logger::getInstance().log("First argument should be boolean", LogLevel::ERROR); return create_response(env, true, 0); } @@ -157,23 +168,26 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in napi_get_value_bool(env, argv[0], &response); status = napi_typeof(env, argv[1], &valueType); - if (status != napi_ok || valueType != napi_string) { + if (status != napi_ok || valueType != napi_string) + { Logger::getInstance().log("Second argument should be string", LogLevel::ERROR); return create_response(env, true, 0); } - TransferContext* ctxPtr = nullptr; + TransferContext *ctxPtr = nullptr; napi_value thisArg = nullptr; - status = napi_get_cb_info(env, info, nullptr, nullptr, &thisArg, reinterpret_cast(&ctxPtr)); - if (status != napi_ok || !ctxPtr) { + status = napi_get_cb_info(env, info, nullptr, nullptr, &thisArg, reinterpret_cast(&ctxPtr)); + if (status != napi_ok || !ctxPtr) + { Logger::getInstance().log("Could not retrieve TransferContext from callback data", LogLevel::ERROR); return create_response(env, true, 0); } - if (!response) { + if (!response) + { Logger::getInstance().log("JS responded with false; we cancel hydration.", LogLevel::DEBUG); - ctxPtr->loadFinished = true; + ctxPtr->loadFinished = true; ctxPtr->lastReadOffset = 0; { std::lock_guard lock(ctxPtr->mtx); @@ -188,28 +202,27 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in napi_get_value_string_utf16(env, argv[1], nullptr, 0, &response_len); std::wstring response_wstr(response_len, L'\0'); - napi_get_value_string_utf16(env, argv[1], (char16_t*)response_wstr.data(), response_len + 1, &response_len); + napi_get_value_string_utf16(env, argv[1], (char16_t *)response_wstr.data(), response_len + 1, &response_len); Logger::getInstance().log( "JS responded with server file path = " + Logger::fromWStringToString(response_wstr), - LogLevel::DEBUG - ); + LogLevel::DEBUG); ctxPtr->fullServerFilePath = response_wstr; float progress = 0.0f; ctxPtr->lastReadOffset = file_incremental_reading(env, *ctxPtr, /*final_step=*/false, progress); - if (ctxPtr->lastReadOffset == (size_t)ctxPtr->fileSize.QuadPart) { + if (ctxPtr->lastReadOffset == (size_t)ctxPtr->fileSize.QuadPart) + { Logger::getInstance().log("File fully read.", LogLevel::DEBUG); ctxPtr->lastReadOffset = 0; - ctxPtr->loadFinished = true; + ctxPtr->loadFinished = true; Utilities::ApplyTransferStateToFile( ctxPtr->fullClientPath.c_str(), ctxPtr->callbackInfo, ctxPtr->fileSize.QuadPart, - ctxPtr->fileSize.QuadPart - ); + ctxPtr->fileSize.QuadPart); ::Sleep(CHUNKDELAYMS); @@ -218,17 +231,16 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in { std::lock_guard lock(ctxPtr->mtx); - if (ctxPtr->loadFinished) { + if (ctxPtr->loadFinished) + { ctxPtr->ready = true; ctxPtr->cv.notify_one(); } } Logger::getInstance().log( - "fetch data => finished: " + std::to_string(ctxPtr->loadFinished) - + ", progress: " + std::to_string(progress), - LogLevel::DEBUG - ); + "fetch data => finished: " + std::to_string(ctxPtr->loadFinished) + ", progress: " + std::to_string(progress), + LogLevel::DEBUG); return create_response(env, ctxPtr->loadFinished, progress); } @@ -249,27 +261,27 @@ static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *c napi_value js_fileIdentityArg; { std::u16string u16_fileIdentity(fileIdentityWstr.begin(), fileIdentityWstr.end()); - napi_create_string_utf16(env, - u16_fileIdentity.c_str(), - u16_fileIdentity.size(), + napi_create_string_utf16(env, + u16_fileIdentity.c_str(), + u16_fileIdentity.size(), &js_fileIdentityArg); } - napi_value js_response_callback_fn; - napi_create_function(env, - "responseCallback", - NAPI_AUTO_LENGTH, - response_callback_fn_fetch_data, - ctx, + napi_create_function(env, + "responseCallback", + NAPI_AUTO_LENGTH, + response_callback_fn_fetch_data, + ctx, &js_response_callback_fn); - napi_value args_to_js_callback[2] = { js_fileIdentityArg, js_response_callback_fn }; + napi_value args_to_js_callback[2] = {js_fileIdentityArg, js_response_callback_fn}; Logger::getInstance().log("notify_fetch_data_call: calling JS function", LogLevel::DEBUG); napi_value undefined, result; status = napi_get_undefined(env, &undefined); - if (status != napi_ok) { + if (status != napi_ok) + { Logger::getInstance().log("Failed to get undefined in notify_fetch_data_call.", LogLevel::ERROR); return; } @@ -278,16 +290,17 @@ static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *c { Logger::getInstance().log("notify_fetch_data_call: locking ctx->mtx", LogLevel::DEBUG); std::unique_lock lock(ctx->mtx); - ctx->ready = false; + ctx->ready = false; } - status = napi_call_function(env, - undefined, - js_callback, - 2, - args_to_js_callback, + status = napi_call_function(env, + undefined, + js_callback, + 2, + args_to_js_callback, &result); - if (status != napi_ok) { + if (status != napi_ok) + { Logger::getInstance().log("Failed to call JS function in notify_fetch_data_call.", LogLevel::ERROR); return; } @@ -295,13 +308,12 @@ static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *c Logger::getInstance().log("Hydration concluded or user signaled to finish in notify_fetch_data_call.", LogLevel::INFO); ctx->lastReadOffset = 0; - ctx->loadFinished = false; - ctx->ready = false; - + ctx->loadFinished = false; + ctx->ready = false; + // RemoveTransferContext(ctx->transferKey); } - void register_threadsafe_fetch_data_callback(const std::string &resource_name, napi_env env, InputSyncCallbacks input) { std::u16string converted_resource_name(resource_name.begin(), resource_name.end()); @@ -342,24 +354,24 @@ void CALLBACK fetch_data_callback_wrapper( _In_ CONST CF_CALLBACK_PARAMETERS *callbackParameters) { Logger::getInstance().log("fetch_data_callback_wrapper called", LogLevel::DEBUG); - + auto ctx = GetOrCreateTransferContext(callbackInfo->ConnectionKey, callbackInfo->TransferKey); - - ctx->fileSize = callbackInfo->FileSize; - ctx->requiredLength = callbackParameters->FetchData.RequiredLength; - ctx->requiredOffset = callbackParameters->FetchData.RequiredFileOffset; - ctx->callbackInfo = *callbackInfo; - - std::wstring fullClientPath(callbackInfo->VolumeDosName); // e.g., "C:" - fullClientPath.append(callbackInfo->NormalizedPath); // e.g., "\Users\file.txt" - ctx->fullClientPath = fullClientPath; // Result: "C:\Users\file.txt" - - Logger::getInstance().log("Full download path: " - + Logger::fromWStringToString(fullClientPath), - LogLevel::INFO); - - if (g_fetch_data_threadsafe_callback == nullptr) { - Logger::getInstance().log("fetch_data_callback_wrapper: g_fetch_data_threadsafe_callback is null", + + ctx->fileSize = callbackInfo->FileSize; + ctx->requiredLength = callbackParameters->FetchData.RequiredLength; + ctx->requiredOffset = callbackParameters->FetchData.RequiredFileOffset; + ctx->callbackInfo = *callbackInfo; + + std::wstring fullClientPath(callbackInfo->VolumeDosName); // e.g., "C:" + fullClientPath.append(callbackInfo->NormalizedPath); // e.g., "\Users\file.txt" + ctx->fullClientPath = fullClientPath; // Result: "C:\Users\file.txt" + + Logger::getInstance().log("Full download path: " + Logger::fromWStringToString(fullClientPath), + LogLevel::INFO); + + if (g_fetch_data_threadsafe_callback == nullptr) + { + Logger::getInstance().log("fetch_data_callback_wrapper: g_fetch_data_threadsafe_callback is null", LogLevel::ERROR); return; } @@ -370,11 +382,12 @@ void CALLBACK fetch_data_callback_wrapper( { std::unique_lock lock(ctx->mtx); - while (!ctx->ready) { + while (!ctx->ready) + { ctx->cv.wait(lock); } } - + Logger::getInstance().log("Hydration finish in fetch_data_callback_wrapper", LogLevel::INFO); RemoveTransferContext(ctx->transferKey); diff --git a/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp b/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp index 3083214a..06daa6f2 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp @@ -1,12 +1,12 @@ -#include "stdafx.h" +#include #include #include #include #include -#include "FileCopierWithProgress.h" -#include "Utilities.h" +#include +#include #include -#include "Logger.h" +#include namespace fs = std::filesystem; diff --git a/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp b/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp index 130067b9..ec1ff595 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp @@ -1,7 +1,9 @@ -#include "TransferContext.h" +#include -struct CfTransferKeyLess { - bool operator()(const CF_TRANSFER_KEY &a, const CF_TRANSFER_KEY &b) const { +struct CfTransferKeyLess +{ + bool operator()(const CF_TRANSFER_KEY &a, const CF_TRANSFER_KEY &b) const + { return a.QuadPart < b.QuadPart; } }; @@ -10,14 +12,16 @@ static std::map, CfTransferKey static std::mutex g_contextMapMutex; -std::shared_ptr GetOrCreateTransferContext(CF_CONNECTION_KEY connKey, CF_TRANSFER_KEY transferKey) { +std::shared_ptr GetOrCreateTransferContext(CF_CONNECTION_KEY connKey, CF_TRANSFER_KEY transferKey) +{ std::lock_guard lock(g_contextMapMutex); auto it = g_transferContextMap.find(transferKey); - if (it != g_transferContextMap.end()) { + if (it != g_transferContextMap.end()) + { return it->second; } - + auto ctx = std::make_shared(); ctx->connectionKey = connKey; ctx->transferKey = transferKey; @@ -25,7 +29,8 @@ std::shared_ptr GetOrCreateTransferContext(CF_CONNECTION_KEY co return ctx; } -void RemoveTransferContext(CF_TRANSFER_KEY transferKey) { +void RemoveTransferContext(CF_TRANSFER_KEY transferKey) +{ std::lock_guard lock(g_contextMapMutex); g_transferContextMap.erase(transferKey); } diff --git a/native-src/virtual_drive/create_file_placeholder.cpp b/native-src/virtual_drive/create_file_placeholder.cpp index 5850ab3c..8a81358d 100644 --- a/native-src/virtual_drive/create_file_placeholder.cpp +++ b/native-src/virtual_drive/create_file_placeholder.cpp @@ -1,8 +1,9 @@ #include #include -#include "Placeholders.h" -#include "convert_to_placeholder.h" -#include "napi_extract_args.h" +#include +#include +#include +#include napi_value create_file_placeholder_impl(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/create_folder_placeholder.cpp b/native-src/virtual_drive/create_folder_placeholder.cpp index f8bc9e9d..478eea87 100644 --- a/native-src/virtual_drive/create_folder_placeholder.cpp +++ b/native-src/virtual_drive/create_folder_placeholder.cpp @@ -3,6 +3,7 @@ #include #include #include +#include napi_value create_folder_placeholder_impl(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index c5a06b12..8aabc0c0 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include diff --git a/native-src/virtual_drive/unregister_sync_root_wrapper.cpp b/native-src/virtual_drive/unregister_sync_root_wrapper.cpp index 76060902..018be479 100644 --- a/native-src/virtual_drive/unregister_sync_root_wrapper.cpp +++ b/native-src/virtual_drive/unregister_sync_root_wrapper.cpp @@ -1,10 +1,11 @@ #include #include #include -#include "napi_extract_args.h" -#include "stdafx.h" +#include +#include -napi_value unregister_sync_root_wrapper(napi_env env, napi_callback_info info) { +napi_value unregister_sync_root_wrapper(napi_env env, napi_callback_info info) +{ auto [providerId] = napi_extract_args(env, info); winrt::StorageProviderSyncRootManager::Unregister(providerId); From 4154a473b73ef7ab3a46d08892912f21e22078d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 10:40:48 +0100 Subject: [PATCH 08/11] Revert "Commit" This reverts commit ff5a19babd3c413eb905fc1028ffbbeeaeead25f. --- dist/addon.node | Bin 598016 -> 598016 bytes native-src/logger/Logger.cpp | 67 +++---- native-src/logger/LoggerPath.cpp | 8 +- .../PlaceHolderInfo.cpp | 4 +- .../placeholders_interface/Planceholders.cpp | 10 +- native-src/sync_root_interface/SyncRoot.cpp | 6 +- native-src/sync_root_interface/Utilities.cpp | 4 +- .../CancelFetchDataCallback.cpp | 24 +-- .../callbacks/FetchData/FetchData.cpp | 173 ++++++++---------- .../FetchData/FileCopierWithProgress.cpp | 8 +- .../callbacks/FetchData/TransferContext.cpp | 19 +- .../virtual_drive/create_file_placeholder.cpp | 7 +- .../create_folder_placeholder.cpp | 1 - native-src/virtual_drive/hydrate_file.cpp | 2 +- .../unregister_sync_root_wrapper.cpp | 7 +- 15 files changed, 145 insertions(+), 195 deletions(-) diff --git a/dist/addon.node b/dist/addon.node index 2733878219c4aba83a107468c04317f9f7f83bc3..97ddccb5a82aed5e1c75f579ae46ff73c2414b5f 100644 GIT binary patch delta 1021 zcmZ`&Z){Ul6u-Z>_T3IG+km=Swpek@#RNeT9gG08((#ZX*iDTD#Qu4@DUPmm2yrIM zCT?sg5)*S$$H;i`gF09y1aC64*q9|6B9Tw{!RQCmZXFqkOp>A|;(6ONCg@GhIlp^; z=bYckyLnxis;*4cm={|AM2`>32b4bH{(W2*b0uZL!hpLlPPMhT_+W%n`TbY^ykn%C zTNoQD&j^R(KNuxDt{N$Kzq)4wYL>Xqj_IN?{561Mul{QO4(~o^f?(ALCS! z5a0g$G^X62E%dG5$ow0W;o7?OlJTzpukH3Rzve&qcDfb7TiB)IPoYR#^VsP8N?OF0 z7I#axFYxcLT96L%%FE`ZY1qb*t+othf>^2k2;%3p_>O++fPpsk@DaqJ-FTbQZ{j?v z)%K&%98mOhCmz6i^qL)_)NhAP>eEi_bwVg-Hzt8Wb-4#8HB_k=-^C4-=y6?ilp6y9 zm$Au-xO%P+-Kdy3sEd;0K?w16FwdUD?0p>g5iIrV2_#WLuisr#xlj^NJp=dvc!%y! z;WT>H=PBIMFsDXNq06;2e1Ik0i<0|jV;Z}cO}=DLt7WOh{1^0L8ZkVh?xYa`c2Z;z zC-ITGIf&YJAJ6rbkCZ>H@L)3QQqjnUG)4AId%k9s-J+;CpT`5}vEWG%`b zxA*6hnfIchh@QPJxBA<(vah0NLe1mNb@JLLEy+pe^3LDV=bk*_7;)}5cT}sf>v9rx z{S(ElcB95-e+kE0mvDGoc1rxs-OG3dTMKh7|8O)qD}DUes>`!-OHJv@b*uO8{&J%6 t)TO{9u5FtOyB9To`e*BaJ;wi4>fT@Ag!B=uz z;WIg4Y-VE?gDuv0ze6G`0%CCjA^lHqYc5#QhMZhq*Aepg?^qG|)4P$^1JPb-K_=I` za2cPI7ErEN;ss6DS-4J*=J9(j_`$?H%Rwik?{AOp6UsFY^6!q!k$Us=sBg&5y%I-! z-`ZhPa<*pspRq#r*$(}4;TXR0gA9k*tUcfXK|FxLy>K0tvVwge=%EFRYG5iL?$Br_ z9@S_$yIKPqL@+S14!Qt3*`s=B55A6|tavGS(iNEiw?9&lYA?5tee_JMxv=p)WMmPzeVsZe^0qv(=a|vr{T*UIu#0V_X}#m&0!jwRIF@w`&7kSvcJk%TwSfM z^*THr#fuGE_q;GQV<=2*`aHMKiSxrW33a`6W>T4_!l5eKOo{4H{l4E**}XIwBVlUQ z7^#Nu9untJNmejr;jef?mlWYxJNIGkv^IN1k=;#475e)JgklI#&r>D!_yJ! z(T;d#?Wa~q;NN&OLL-#F5Ldsa+14&`e9gDuwVWgRHgS_um{uhuJaC>XF1=HlMPFQT zsjTBY?Sib2-7#)$P~gy(>*pGX-ek~H*AqBgyyp5-!}bAc;eRlDG(eZy;%V49 ld&<*`IrmOna=p$sU2HI$49skb`ARXA7&C#TPL6pk`~sgRT+RRh diff --git a/native-src/logger/Logger.cpp b/native-src/logger/Logger.cpp index e79565a4..a6e9bf23 100644 --- a/native-src/logger/Logger.cpp +++ b/native-src/logger/Logger.cpp @@ -1,34 +1,27 @@ -#include -#include +#include "Logger.h" +#include "LoggerPath.h" -Logger::Logger() : log_file(LoggerPath::get(), std::ios::app) -{ +Logger::Logger() : log_file(LoggerPath::get(), std::ios::app) { std::wstring widePath = fromUtf8ToWide(LoggerPath::get()); wprintf(L"Logger path: %ls\n", widePath.c_str()); std::string path = LoggerPath::get(); - if (!log_file.is_open() && !path.empty()) - { + if (!log_file.is_open() && !path.empty()) { throw std::runtime_error("No se pudo abrir el archivo de log."); } } -Logger::~Logger() -{ - if (log_file.is_open()) - { +Logger::~Logger() { + if (log_file.is_open()) { log_file.close(); } } -std::wstring Logger::fromUtf8ToWide(const std::string &utf8Str) -{ - if (utf8Str.empty()) - return std::wstring(); +std::wstring Logger::fromUtf8ToWide(const std::string& utf8Str) { + if (utf8Str.empty()) return std::wstring(); int wideSize = MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, nullptr, 0); - if (wideSize <= 0) - return std::wstring(); + if (wideSize <= 0) return std::wstring(); std::unique_ptr wideStr(new wchar_t[wideSize]); MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, wideStr.get(), wideSize); @@ -36,8 +29,7 @@ std::wstring Logger::fromUtf8ToWide(const std::string &utf8Str) return std::wstring(wideStr.get()); } -void Logger::log(const std::string &message, LogLevel level, WORD color) -{ +void Logger::log(const std::string &message, LogLevel level, WORD color) { std::lock_guard guard(log_mutex); auto now = std::chrono::system_clock::now(); @@ -59,44 +51,31 @@ void Logger::log(const std::string &message, LogLevel level, WORD color) GetConsoleScreenBufferInfo(hConsole, &consoleInfo); WORD saved_attributes = consoleInfo.wAttributes; - if (color != 0) - { + if (color != 0) { SetConsoleTextAttribute(hConsole, color); } printf("[%s] [%s] %s\n", time_stream.str().c_str(), level_str.c_str(), message.c_str()); - if (color != 0) - { + if (color != 0) { SetConsoleTextAttribute(hConsole, saved_attributes); } } -std::string Logger::toString(LogLevel level) -{ - switch (level) - { - case LogLevel::DEBUG: - return "DEBUG"; - case LogLevel::INFO: - return "INFO"; - case LogLevel::WARN: - return "WARN"; - case LogLevel::TRACE: - return "TRACE"; - case LogLevel::ERROR: - return "ERROR"; - case LogLevel::FATAL: - return "FATAL"; - default: - return "UNKNOWN"; +std::string Logger::toString(LogLevel level) { + switch (level) { + case LogLevel::DEBUG: return "DEBUG"; + case LogLevel::INFO: return "INFO"; + case LogLevel::WARN: return "WARN"; + case LogLevel::TRACE: return "TRACE"; + case LogLevel::ERROR: return "ERROR"; + case LogLevel::FATAL: return "FATAL"; + default: return "UNKNOWN"; } } -std::string Logger::fromWStringToString(const std::wstring wstr) -{ - if (wstr.empty()) - return std::string(); +std::string Logger::fromWStringToString(const std::wstring wstr) { + if (wstr.empty()) return std::string(); int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL); std::string strTo(size_needed, 0); diff --git a/native-src/logger/LoggerPath.cpp b/native-src/logger/LoggerPath.cpp index b44766c9..99cddca9 100644 --- a/native-src/logger/LoggerPath.cpp +++ b/native-src/logger/LoggerPath.cpp @@ -1,16 +1,14 @@ -#include +#include "LoggerPath.h" std::string LoggerPath::path_ = ""; std::mutex LoggerPath::mutex_; -void LoggerPath::set(const std::string &path) -{ +void LoggerPath::set(const std::string& path) { std::lock_guard guard(mutex_); path_ = path; } -std::string LoggerPath::get() -{ +std::string LoggerPath::get() { std::lock_guard guard(mutex_); return path_; } \ No newline at end of file diff --git a/native-src/placeholders_interface/PlaceHolderInfo.cpp b/native-src/placeholders_interface/PlaceHolderInfo.cpp index 512d4efb..efb60713 100644 --- a/native-src/placeholders_interface/PlaceHolderInfo.cpp +++ b/native-src/placeholders_interface/PlaceHolderInfo.cpp @@ -1,10 +1,10 @@ -#include +#include "PlaceHolderInfo.h" #include #include #include #include #include -#include +#include "Logger.h" FileHandle::FileHandle() : _data( diff --git a/native-src/placeholders_interface/Planceholders.cpp b/native-src/placeholders_interface/Planceholders.cpp index 57957285..56664ad4 100644 --- a/native-src/placeholders_interface/Planceholders.cpp +++ b/native-src/placeholders_interface/Planceholders.cpp @@ -1,7 +1,7 @@ -#include -#include -#include -#include +#include "stdafx.h" +#include "Placeholders.h" +#include "Logger.h" +#include "PlaceholderInfo.h" #include #include #include @@ -15,7 +15,7 @@ #include #include #include -#include +#include "convert_to_placeholder.h" #pragma comment(lib, "shlwapi.lib") diff --git a/native-src/sync_root_interface/SyncRoot.cpp b/native-src/sync_root_interface/SyncRoot.cpp index b43b74e3..6f02babf 100644 --- a/native-src/sync_root_interface/SyncRoot.cpp +++ b/native-src/sync_root_interface/SyncRoot.cpp @@ -1,6 +1,6 @@ -#include -#include -#include +#include "Callbacks.h" +#include "SyncRoot.h" +#include "stdafx.h" #include #include #include diff --git a/native-src/sync_root_interface/Utilities.cpp b/native-src/sync_root_interface/Utilities.cpp index ae1ce7b9..98626db4 100644 --- a/native-src/sync_root_interface/Utilities.cpp +++ b/native-src/sync_root_interface/Utilities.cpp @@ -1,8 +1,8 @@ -#include +#include "stdafx.h" #include #include #include -#include +#include "Utilities.h" #include DEFINE_PROPERTYKEY(PKEY_StorageProviderTransferProgress, 0xE77E90DF, 0x6271, 0x4F5B, 0x83, 0x4F, 0x2D, 0xD1, 0xF2, 0x45, 0xDD, 0xA4, 4); diff --git a/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp b/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp index 5ab4e3b2..cf72ffe4 100644 --- a/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp +++ b/native-src/sync_root_interface/callbacks/CancelFetchData/CancelFetchDataCallback.cpp @@ -1,4 +1,4 @@ -#include +#include "stdafx.h" #include #include #include @@ -9,19 +9,17 @@ napi_threadsafe_function g_cancel_fetch_data_threadsafe_callback = nullptr; -struct CallbackContext -{ +struct CallbackContext { std::mutex mtx; std::condition_variable cv; bool ready = false; }; -struct CancelFetchDataArgs -{ +struct CancelFetchDataArgs { std::wstring fileIdentityArg; - CallbackContext *context; - - CancelFetchDataArgs(const std::wstring &fileId, CallbackContext *ctx) + CallbackContext* context; + + CancelFetchDataArgs(const std::wstring& fileId, CallbackContext* ctx) : fileIdentityArg(fileId), context(ctx) {} }; @@ -106,7 +104,7 @@ void CALLBACK cancel_fetch_data_callback_wrapper( wprintf(L"Callback fetch_data_callback_wrapper called but g_fetch_data_threadsafe_callback is null\n"); return; } - + CallbackContext context; CancelFetchDataArgs *args = new CancelFetchDataArgs(fileIdentityStr, &context); @@ -116,13 +114,9 @@ void CALLBACK cancel_fetch_data_callback_wrapper( std::unique_lock lock(context.mtx); auto timeout = std::chrono::seconds(30); - if (context.cv.wait_for(lock, timeout, [&context] - { return context.ready; })) - { + if (context.cv.wait_for(lock, timeout, [&context] { return context.ready; })) { wprintf(L"Cancel fetch completed\n"); - } - else - { + } else { wprintf(L"Cancel fetch timed out\n"); } } diff --git a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp index f631e67d..3366060f 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp @@ -1,4 +1,4 @@ -#include +#include "stdafx.h" #include #include #include @@ -11,7 +11,7 @@ #include #include #include -#include +#include "Utilities.h" #include #include #include @@ -52,18 +52,17 @@ napi_value create_response(napi_env env, bool finished, float progress) return promise; } -static size_t file_incremental_reading(napi_env env, - TransferContext &ctx, - bool final_step, +static size_t file_incremental_reading(napi_env env, + TransferContext &ctx, + bool final_step, float &progress) { std::ifstream file; file.open(ctx.fullServerFilePath, std::ios::in | std::ios::binary); - if (!file.is_open()) - { + if (!file.is_open()) { Logger::getInstance().log("Error al abrir el archivo en file_incremental_reading.", LogLevel::ERROR); - return ctx.lastReadOffset; + return ctx.lastReadOffset; } file.clear(); @@ -71,12 +70,10 @@ static size_t file_incremental_reading(napi_env env, size_t newSize = static_cast(file.tellg()); size_t datasizeAvailableUnread = newSize - ctx.lastReadOffset; - size_t growth = newSize - ctx.lastSize; + size_t growth = newSize - ctx.lastSize; - try - { - if (datasizeAvailableUnread > 0) - { + try { + if (datasizeAvailableUnread > 0) { std::vector buffer(CHUNK_SIZE); file.seekg(ctx.lastReadOffset); file.read(buffer.data(), CHUNK_SIZE); @@ -96,8 +93,7 @@ static size_t file_incremental_reading(napi_env env, ctx.lastReadOffset += chunkBufferSize.QuadPart; - if (FAILED(hr)) - { + if (FAILED(hr)) { wprintf(L"Error en TransferData(). HRESULT: %lx\n", hr); ctx.loadFinished = true; FileCopierWithProgress::TransferData( @@ -107,21 +103,17 @@ static size_t file_incremental_reading(napi_env env, ctx.requiredOffset, ctx.requiredLength, STATUS_UNSUCCESSFUL); - } - else - { + } else { UINT64 totalSize = static_cast(ctx.fileSize.QuadPart); progress = static_cast(ctx.lastReadOffset) / static_cast(totalSize); - Utilities::ApplyTransferStateToFile(ctx.fullClientPath.c_str(), - ctx.callbackInfo, - totalSize, + Utilities::ApplyTransferStateToFile(ctx.fullClientPath.c_str(), + ctx.callbackInfo, + totalSize, ctx.lastReadOffset); - ::Sleep(CHUNKDELAYMS); + ::Sleep(CHUNKDELAYMS); } } - } - catch (...) - { + } catch (...) { Logger::getInstance().log("Excepción en file_incremental_reading.", LogLevel::ERROR); FileCopierWithProgress::TransferData( ctx.connectionKey, @@ -144,22 +136,19 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in size_t argc = 3; napi_value argv[3]; napi_status status = napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr); - if (status != napi_ok) - { + if (status != napi_ok) { Logger::getInstance().log("Failed to get callback info", LogLevel::ERROR); - return create_response(env, true, 0); + return create_response(env, true, 0); } - if (argc < 2) - { + if (argc < 2) { Logger::getInstance().log("This function must receive at least two arguments", LogLevel::ERROR); return create_response(env, true, 0); } napi_valuetype valueType; status = napi_typeof(env, argv[0], &valueType); - if (status != napi_ok || valueType != napi_boolean) - { + if (status != napi_ok || valueType != napi_boolean) { Logger::getInstance().log("First argument should be boolean", LogLevel::ERROR); return create_response(env, true, 0); } @@ -168,26 +157,23 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in napi_get_value_bool(env, argv[0], &response); status = napi_typeof(env, argv[1], &valueType); - if (status != napi_ok || valueType != napi_string) - { + if (status != napi_ok || valueType != napi_string) { Logger::getInstance().log("Second argument should be string", LogLevel::ERROR); return create_response(env, true, 0); } - TransferContext *ctxPtr = nullptr; + TransferContext* ctxPtr = nullptr; napi_value thisArg = nullptr; - status = napi_get_cb_info(env, info, nullptr, nullptr, &thisArg, reinterpret_cast(&ctxPtr)); - if (status != napi_ok || !ctxPtr) - { + status = napi_get_cb_info(env, info, nullptr, nullptr, &thisArg, reinterpret_cast(&ctxPtr)); + if (status != napi_ok || !ctxPtr) { Logger::getInstance().log("Could not retrieve TransferContext from callback data", LogLevel::ERROR); return create_response(env, true, 0); } - if (!response) - { + if (!response) { Logger::getInstance().log("JS responded with false; we cancel hydration.", LogLevel::DEBUG); - ctxPtr->loadFinished = true; + ctxPtr->loadFinished = true; ctxPtr->lastReadOffset = 0; { std::lock_guard lock(ctxPtr->mtx); @@ -202,27 +188,28 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in napi_get_value_string_utf16(env, argv[1], nullptr, 0, &response_len); std::wstring response_wstr(response_len, L'\0'); - napi_get_value_string_utf16(env, argv[1], (char16_t *)response_wstr.data(), response_len + 1, &response_len); + napi_get_value_string_utf16(env, argv[1], (char16_t*)response_wstr.data(), response_len + 1, &response_len); Logger::getInstance().log( "JS responded with server file path = " + Logger::fromWStringToString(response_wstr), - LogLevel::DEBUG); + LogLevel::DEBUG + ); ctxPtr->fullServerFilePath = response_wstr; float progress = 0.0f; ctxPtr->lastReadOffset = file_incremental_reading(env, *ctxPtr, /*final_step=*/false, progress); - if (ctxPtr->lastReadOffset == (size_t)ctxPtr->fileSize.QuadPart) - { + if (ctxPtr->lastReadOffset == (size_t)ctxPtr->fileSize.QuadPart) { Logger::getInstance().log("File fully read.", LogLevel::DEBUG); ctxPtr->lastReadOffset = 0; - ctxPtr->loadFinished = true; + ctxPtr->loadFinished = true; Utilities::ApplyTransferStateToFile( ctxPtr->fullClientPath.c_str(), ctxPtr->callbackInfo, ctxPtr->fileSize.QuadPart, - ctxPtr->fileSize.QuadPart); + ctxPtr->fileSize.QuadPart + ); ::Sleep(CHUNKDELAYMS); @@ -231,16 +218,17 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in { std::lock_guard lock(ctxPtr->mtx); - if (ctxPtr->loadFinished) - { + if (ctxPtr->loadFinished) { ctxPtr->ready = true; ctxPtr->cv.notify_one(); } } Logger::getInstance().log( - "fetch data => finished: " + std::to_string(ctxPtr->loadFinished) + ", progress: " + std::to_string(progress), - LogLevel::DEBUG); + "fetch data => finished: " + std::to_string(ctxPtr->loadFinished) + + ", progress: " + std::to_string(progress), + LogLevel::DEBUG + ); return create_response(env, ctxPtr->loadFinished, progress); } @@ -261,27 +249,27 @@ static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *c napi_value js_fileIdentityArg; { std::u16string u16_fileIdentity(fileIdentityWstr.begin(), fileIdentityWstr.end()); - napi_create_string_utf16(env, - u16_fileIdentity.c_str(), - u16_fileIdentity.size(), + napi_create_string_utf16(env, + u16_fileIdentity.c_str(), + u16_fileIdentity.size(), &js_fileIdentityArg); } + napi_value js_response_callback_fn; - napi_create_function(env, - "responseCallback", - NAPI_AUTO_LENGTH, - response_callback_fn_fetch_data, - ctx, + napi_create_function(env, + "responseCallback", + NAPI_AUTO_LENGTH, + response_callback_fn_fetch_data, + ctx, &js_response_callback_fn); - napi_value args_to_js_callback[2] = {js_fileIdentityArg, js_response_callback_fn}; + napi_value args_to_js_callback[2] = { js_fileIdentityArg, js_response_callback_fn }; Logger::getInstance().log("notify_fetch_data_call: calling JS function", LogLevel::DEBUG); napi_value undefined, result; status = napi_get_undefined(env, &undefined); - if (status != napi_ok) - { + if (status != napi_ok) { Logger::getInstance().log("Failed to get undefined in notify_fetch_data_call.", LogLevel::ERROR); return; } @@ -290,17 +278,16 @@ static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *c { Logger::getInstance().log("notify_fetch_data_call: locking ctx->mtx", LogLevel::DEBUG); std::unique_lock lock(ctx->mtx); - ctx->ready = false; + ctx->ready = false; } - status = napi_call_function(env, - undefined, - js_callback, - 2, - args_to_js_callback, + status = napi_call_function(env, + undefined, + js_callback, + 2, + args_to_js_callback, &result); - if (status != napi_ok) - { + if (status != napi_ok) { Logger::getInstance().log("Failed to call JS function in notify_fetch_data_call.", LogLevel::ERROR); return; } @@ -308,12 +295,13 @@ static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *c Logger::getInstance().log("Hydration concluded or user signaled to finish in notify_fetch_data_call.", LogLevel::INFO); ctx->lastReadOffset = 0; - ctx->loadFinished = false; - ctx->ready = false; - + ctx->loadFinished = false; + ctx->ready = false; + // RemoveTransferContext(ctx->transferKey); } + void register_threadsafe_fetch_data_callback(const std::string &resource_name, napi_env env, InputSyncCallbacks input) { std::u16string converted_resource_name(resource_name.begin(), resource_name.end()); @@ -354,24 +342,24 @@ void CALLBACK fetch_data_callback_wrapper( _In_ CONST CF_CALLBACK_PARAMETERS *callbackParameters) { Logger::getInstance().log("fetch_data_callback_wrapper called", LogLevel::DEBUG); - + auto ctx = GetOrCreateTransferContext(callbackInfo->ConnectionKey, callbackInfo->TransferKey); - - ctx->fileSize = callbackInfo->FileSize; - ctx->requiredLength = callbackParameters->FetchData.RequiredLength; - ctx->requiredOffset = callbackParameters->FetchData.RequiredFileOffset; - ctx->callbackInfo = *callbackInfo; - - std::wstring fullClientPath(callbackInfo->VolumeDosName); // e.g., "C:" - fullClientPath.append(callbackInfo->NormalizedPath); // e.g., "\Users\file.txt" - ctx->fullClientPath = fullClientPath; // Result: "C:\Users\file.txt" - - Logger::getInstance().log("Full download path: " + Logger::fromWStringToString(fullClientPath), - LogLevel::INFO); - - if (g_fetch_data_threadsafe_callback == nullptr) - { - Logger::getInstance().log("fetch_data_callback_wrapper: g_fetch_data_threadsafe_callback is null", + + ctx->fileSize = callbackInfo->FileSize; + ctx->requiredLength = callbackParameters->FetchData.RequiredLength; + ctx->requiredOffset = callbackParameters->FetchData.RequiredFileOffset; + ctx->callbackInfo = *callbackInfo; + + std::wstring fullClientPath(callbackInfo->VolumeDosName); // e.g., "C:" + fullClientPath.append(callbackInfo->NormalizedPath); // e.g., "\Users\file.txt" + ctx->fullClientPath = fullClientPath; // Result: "C:\Users\file.txt" + + Logger::getInstance().log("Full download path: " + + Logger::fromWStringToString(fullClientPath), + LogLevel::INFO); + + if (g_fetch_data_threadsafe_callback == nullptr) { + Logger::getInstance().log("fetch_data_callback_wrapper: g_fetch_data_threadsafe_callback is null", LogLevel::ERROR); return; } @@ -382,12 +370,11 @@ void CALLBACK fetch_data_callback_wrapper( { std::unique_lock lock(ctx->mtx); - while (!ctx->ready) - { + while (!ctx->ready) { ctx->cv.wait(lock); } } - + Logger::getInstance().log("Hydration finish in fetch_data_callback_wrapper", LogLevel::INFO); RemoveTransferContext(ctx->transferKey); diff --git a/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp b/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp index 06daa6f2..3083214a 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/FileCopierWithProgress.cpp @@ -1,12 +1,12 @@ -#include +#include "stdafx.h" #include #include #include #include -#include -#include +#include "FileCopierWithProgress.h" +#include "Utilities.h" #include -#include +#include "Logger.h" namespace fs = std::filesystem; diff --git a/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp b/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp index ec1ff595..130067b9 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/TransferContext.cpp @@ -1,9 +1,7 @@ -#include +#include "TransferContext.h" -struct CfTransferKeyLess -{ - bool operator()(const CF_TRANSFER_KEY &a, const CF_TRANSFER_KEY &b) const - { +struct CfTransferKeyLess { + bool operator()(const CF_TRANSFER_KEY &a, const CF_TRANSFER_KEY &b) const { return a.QuadPart < b.QuadPart; } }; @@ -12,16 +10,14 @@ static std::map, CfTransferKey static std::mutex g_contextMapMutex; -std::shared_ptr GetOrCreateTransferContext(CF_CONNECTION_KEY connKey, CF_TRANSFER_KEY transferKey) -{ +std::shared_ptr GetOrCreateTransferContext(CF_CONNECTION_KEY connKey, CF_TRANSFER_KEY transferKey) { std::lock_guard lock(g_contextMapMutex); auto it = g_transferContextMap.find(transferKey); - if (it != g_transferContextMap.end()) - { + if (it != g_transferContextMap.end()) { return it->second; } - + auto ctx = std::make_shared(); ctx->connectionKey = connKey; ctx->transferKey = transferKey; @@ -29,8 +25,7 @@ std::shared_ptr GetOrCreateTransferContext(CF_CONNECTION_KEY co return ctx; } -void RemoveTransferContext(CF_TRANSFER_KEY transferKey) -{ +void RemoveTransferContext(CF_TRANSFER_KEY transferKey) { std::lock_guard lock(g_contextMapMutex); g_transferContextMap.erase(transferKey); } diff --git a/native-src/virtual_drive/create_file_placeholder.cpp b/native-src/virtual_drive/create_file_placeholder.cpp index 8a81358d..5850ab3c 100644 --- a/native-src/virtual_drive/create_file_placeholder.cpp +++ b/native-src/virtual_drive/create_file_placeholder.cpp @@ -1,9 +1,8 @@ #include #include -#include -#include -#include -#include +#include "Placeholders.h" +#include "convert_to_placeholder.h" +#include "napi_extract_args.h" napi_value create_file_placeholder_impl(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/create_folder_placeholder.cpp b/native-src/virtual_drive/create_folder_placeholder.cpp index 478eea87..f8bc9e9d 100644 --- a/native-src/virtual_drive/create_folder_placeholder.cpp +++ b/native-src/virtual_drive/create_folder_placeholder.cpp @@ -3,7 +3,6 @@ #include #include #include -#include napi_value create_folder_placeholder_impl(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index 8aabc0c0..c5a06b12 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include diff --git a/native-src/virtual_drive/unregister_sync_root_wrapper.cpp b/native-src/virtual_drive/unregister_sync_root_wrapper.cpp index 018be479..76060902 100644 --- a/native-src/virtual_drive/unregister_sync_root_wrapper.cpp +++ b/native-src/virtual_drive/unregister_sync_root_wrapper.cpp @@ -1,11 +1,10 @@ #include #include #include -#include -#include +#include "napi_extract_args.h" +#include "stdafx.h" -napi_value unregister_sync_root_wrapper(napi_env env, napi_callback_info info) -{ +napi_value unregister_sync_root_wrapper(napi_env env, napi_callback_info info) { auto [providerId] = napi_extract_args(env, info); winrt::StorageProviderSyncRootManager::Unregister(providerId); From a548acec5240797e72c578d2088156d61aa2d1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 10:40:54 +0100 Subject: [PATCH 09/11] Revert "Commit" This reverts commit 9de9b2a5091338e9e16815738d2d9aed37dbc3de. --- .../placeholders_interface/PlaceHolderInfo.h | 2 +- include/stdafx.h | 2 ++ include/sync_root_interface/SyncRoot.h | 2 +- include/sync_root_interface/TransferContext.h | 13 ++++--- .../callbacks/CallbacksContext.h | 5 ++- .../register_sync_root/register_sync_root.h | 2 +- native-src/main.cpp | 2 +- native-src/virtual_drive/Wrappers.cpp | 34 +++++++++---------- .../virtual_drive/connect_sync_root.cpp | 4 +-- .../virtual_drive/convert_to_placeholder.cpp | 6 ++-- .../create_folder_placeholder.cpp | 6 ++-- native-src/virtual_drive/dehydrate_file.cpp | 6 ++-- .../virtual_drive/disconnect_sync_root.cpp | 4 +-- .../get_placeholder_state_wrapper.cpp | 4 +-- .../get_registered_sync_roots.cpp | 10 +++--- .../get_registered_sync_roots_wrapper.cpp | 14 +++----- native-src/virtual_drive/hydrate_file.cpp | 10 +++--- .../register_sync_root/register_sync_root.cpp | 6 ++-- .../register_sync_root_wrapper.cpp | 7 ++-- .../update_sync_status_wrapper.cpp | 4 +-- 20 files changed, 68 insertions(+), 75 deletions(-) diff --git a/include/placeholders_interface/PlaceHolderInfo.h b/include/placeholders_interface/PlaceHolderInfo.h index 420f8334..fa0514fc 100644 --- a/include/placeholders_interface/PlaceHolderInfo.h +++ b/include/placeholders_interface/PlaceHolderInfo.h @@ -1,6 +1,6 @@ #pragma once -#include +#include "stdafx.h" #include struct FileState diff --git a/include/stdafx.h b/include/stdafx.h index 7d45e718..d55c1e3d 100644 --- a/include/stdafx.h +++ b/include/stdafx.h @@ -38,3 +38,5 @@ namespace winrt using namespace Windows::Foundation::Collections; using namespace Windows::Security::Cryptography; } + +#include "Utilities.h" diff --git a/include/sync_root_interface/SyncRoot.h b/include/sync_root_interface/SyncRoot.h index 25cb7777..d14dd3d9 100644 --- a/include/sync_root_interface/SyncRoot.h +++ b/include/sync_root_interface/SyncRoot.h @@ -2,7 +2,7 @@ #include #include -#include +#include "stdafx.h" #include #include diff --git a/include/sync_root_interface/TransferContext.h b/include/sync_root_interface/TransferContext.h index c56f8cb3..dc8ef415 100644 --- a/include/sync_root_interface/TransferContext.h +++ b/include/sync_root_interface/TransferContext.h @@ -4,15 +4,14 @@ #include #include #include -#include +#include "stdafx.h" #include -#include -#include -#include -#include +#include "Logger.h" +#include "Utilities.h" +#include "Placeholders.h" +#include "FileCopierWithProgress.h" -struct TransferContext -{ +struct TransferContext { CF_CONNECTION_KEY connectionKey; CF_TRANSFER_KEY transferKey; LARGE_INTEGER fileSize; diff --git a/include/sync_root_interface/callbacks/CallbacksContext.h b/include/sync_root_interface/callbacks/CallbacksContext.h index 22563d92..ccd8e9ab 100644 --- a/include/sync_root_interface/callbacks/CallbacksContext.h +++ b/include/sync_root_interface/callbacks/CallbacksContext.h @@ -7,10 +7,9 @@ #include #include #include -#include +#include "stdafx.h" -struct InputSyncCallbacks -{ +struct InputSyncCallbacks { napi_ref fetch_data_callback_ref; napi_ref cancel_fetch_data_callback_ref; }; \ No newline at end of file diff --git a/include/virtual_drive/register_sync_root/register_sync_root.h b/include/virtual_drive/register_sync_root/register_sync_root.h index b5c0b13a..bbe45f13 100644 --- a/include/virtual_drive/register_sync_root/register_sync_root.h +++ b/include/virtual_drive/register_sync_root/register_sync_root.h @@ -2,7 +2,7 @@ #include #include -#include +#include "stdafx.h" #include #include diff --git a/native-src/main.cpp b/native-src/main.cpp index 13f986fd..f8e07b7d 100644 --- a/native-src/main.cpp +++ b/native-src/main.cpp @@ -1,5 +1,5 @@ #include -#include +#include "Wrappers.h" napi_value init(napi_env env, napi_value exports) { diff --git a/native-src/virtual_drive/Wrappers.cpp b/native-src/virtual_drive/Wrappers.cpp index 337f0dab..2e087185 100644 --- a/native-src/virtual_drive/Wrappers.cpp +++ b/native-src/virtual_drive/Wrappers.cpp @@ -1,26 +1,26 @@ -#include +#include "stdafx.h" #include -#include -#include -#include +#include "Placeholders.h" +#include "Callbacks.h" +#include "LoggerPath.h" #include #include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "register_sync_root_wrapper.h" +#include "create_folder_placeholder.h" +#include "create_file_placeholder.h" +#include "connect_sync_root.h" +#include "hydrate_file.h" +#include "convert_to_placeholder.h" +#include "get_registered_sync_roots_wrapper.h" +#include "unregister_sync_root_wrapper.h" +#include "dehydrate_file.h" +#include "disconnect_sync_root.h" +#include "get_placeholder_state_wrapper.h" +#include "update_sync_status_wrapper.h" +#include "NAPI_SAFE_WRAP.h" napi_value CreateFilePlaceholderWrapper(napi_env env, napi_callback_info args) { diff --git a/native-src/virtual_drive/connect_sync_root.cpp b/native-src/virtual_drive/connect_sync_root.cpp index eb28e02b..ccf55399 100644 --- a/native-src/virtual_drive/connect_sync_root.cpp +++ b/native-src/virtual_drive/connect_sync_root.cpp @@ -1,5 +1,5 @@ -#include -#include +#include "Windows.h +#include "SyncRoot.h" napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) { diff --git a/native-src/virtual_drive/convert_to_placeholder.cpp b/native-src/virtual_drive/convert_to_placeholder.cpp index a88bcd6b..cbf4ab54 100644 --- a/native-src/virtual_drive/convert_to_placeholder.cpp +++ b/native-src/virtual_drive/convert_to_placeholder.cpp @@ -1,8 +1,8 @@ #include #include -#include -#include -#include +#include "stdafx.h" +#include "napi_extract_args.h" +#include "Placeholders.h" void convert_to_placeholder(const std::wstring &path, const std::wstring &placeholderId) { diff --git a/native-src/virtual_drive/create_folder_placeholder.cpp b/native-src/virtual_drive/create_folder_placeholder.cpp index f8bc9e9d..b64b3d0e 100644 --- a/native-src/virtual_drive/create_folder_placeholder.cpp +++ b/native-src/virtual_drive/create_folder_placeholder.cpp @@ -1,8 +1,8 @@ #include #include -#include -#include -#include +#include "Placeholders.h" +#include "convert_to_placeholder.h" +#include "napi_extract_args.h" napi_value create_folder_placeholder_impl(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/dehydrate_file.cpp b/native-src/virtual_drive/dehydrate_file.cpp index 827fdb4e..a6d9ef72 100644 --- a/native-src/virtual_drive/dehydrate_file.cpp +++ b/native-src/virtual_drive/dehydrate_file.cpp @@ -1,7 +1,7 @@ #include -#include -#include -#include +#include "napi_extract_args.h" +#include "stdafx.h" +#include "Placeholders.h" napi_value dehydrate_file(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/disconnect_sync_root.cpp b/native-src/virtual_drive/disconnect_sync_root.cpp index 506e9731..fe84245f 100644 --- a/native-src/virtual_drive/disconnect_sync_root.cpp +++ b/native-src/virtual_drive/disconnect_sync_root.cpp @@ -1,6 +1,6 @@ #include -#include -#include +#include "napi_extract_args.h" +#include "SyncRoot.h" napi_value disconnect_sync_root(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp b/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp index a22e4512..feb93b8c 100644 --- a/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp +++ b/native-src/virtual_drive/get_placeholder_state/get_placeholder_state_wrapper.cpp @@ -1,6 +1,6 @@ #include -#include -#include +#include "napi_extract_args.h" +#include "Placeholders.h" napi_value get_placeholder_state_wrapper(napi_env env, napi_callback_info info) { diff --git a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp index 8aff2ac6..447cb1a1 100644 --- a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp +++ b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots.cpp @@ -1,17 +1,15 @@ -#include +#include "stdafx.h" #include #include #include -#include +#include "get_registered_sync_roots.h" -std::vector get_registered_sync_roots() -{ +std::vector get_registered_sync_roots() { std::vector syncRootList; auto syncRoots = winrt::StorageProviderSyncRootManager::GetCurrentSyncRoots(); - for (auto const &info : syncRoots) - { + for (auto const &info : syncRoots) { SyncRoots sr; sr.id = info.Id(); sr.path = info.Path().Path(); diff --git a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp index ab42cc6b..d44f75a4 100644 --- a/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp +++ b/native-src/virtual_drive/get_registered_sync_roots/get_registered_sync_roots_wrapper.cpp @@ -2,31 +2,27 @@ #include #include #include -#include +#include "get_registered_sync_roots.h" -std::string WStringToUTF8(const std::wstring &wstr) -{ +std::string WStringToUTF8(const std::wstring &wstr) { std::wstring_convert> conv; return conv.to_bytes(wstr); } -void add_string_property(napi_env env, napi_value obj, const char *key, const std::wstring &value) -{ +void add_string_property(napi_env env, napi_value obj, const char* key, const std::wstring& value) { std::string utf8Value = WStringToUTF8(value); napi_value napiValue; napi_create_string_utf8(env, utf8Value.c_str(), utf8Value.size(), &napiValue); napi_set_named_property(env, obj, key, napiValue); } -napi_value get_registered_sync_roots_wrapper(napi_env env, napi_callback_info args) -{ +napi_value get_registered_sync_roots_wrapper(napi_env env, napi_callback_info args) { std::vector roots = get_registered_sync_roots(); napi_value jsArray; napi_create_array_with_length(env, roots.size(), &jsArray); - for (size_t i = 0; i < roots.size(); i++) - { + for (size_t i = 0; i < roots.size(); i++) { napi_value jsObj; napi_create_object(env, &jsObj); diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index c5a06b12..bedfe4cd 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,8 +1,8 @@ -#include -#include -#include -#include -#include +#include "thread" +#include "string" +#include "Windows.h +#include "Placeholders.h" +#include "napi_extract_args.h" struct AsyncWork { diff --git a/native-src/virtual_drive/register_sync_root/register_sync_root.cpp b/native-src/virtual_drive/register_sync_root/register_sync_root.cpp index 3ac38fa1..a835b3d0 100644 --- a/native-src/virtual_drive/register_sync_root/register_sync_root.cpp +++ b/native-src/virtual_drive/register_sync_root/register_sync_root.cpp @@ -1,6 +1,6 @@ -#include -#include -#include +#include "Callbacks.h" +#include "SyncRoot.h" +#include "stdafx.h" #include #include #include diff --git a/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp b/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp index a163be0c..f72ea175 100644 --- a/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp +++ b/native-src/virtual_drive/register_sync_root/register_sync_root_wrapper.cpp @@ -1,9 +1,8 @@ #include -#include -#include +#include "napi_extract_args.h" +#include "register_sync_root.h" -napi_value register_sync_root_wrapper(napi_env env, napi_callback_info info) -{ +napi_value register_sync_root_wrapper(napi_env env, napi_callback_info info) { auto [syncRootPath, providerName, providerVersion, providerId, logoPath] = napi_extract_args(env, info); diff --git a/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp b/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp index 3cb8938d..a314a09e 100644 --- a/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp +++ b/native-src/virtual_drive/update_sync_status/update_sync_status_wrapper.cpp @@ -1,6 +1,6 @@ #include -#include -#include +#include "Placeholders.h" +#include "napi_extract_args.h" napi_value update_sync_status_wrapper(napi_env env, napi_callback_info info) { From 36e0bf7f7bfc1d1fdd1cfe4ac04ecc468ff975f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 10:44:07 +0100 Subject: [PATCH 10/11] Commit --- dist/addon.node | Bin 598016 -> 598016 bytes .../virtual_drive/connect_sync_root.cpp | 4 ++-- native-src/virtual_drive/hydrate_file.cpp | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dist/addon.node b/dist/addon.node index 97ddccb5a82aed5e1c75f579ae46ff73c2414b5f..58d9b178220ba4005ff9c4ce193075d14f1421ef 100644 GIT binary patch delta 145 zcmZoTpwe(aWrGAG)7DeXQjG0Vj3CSe#LPg<0>rF9%(h*Mkv;0Q)z(v-nG8U{1jH#o z%%ac1z#_^45@LYK@c`K(K%4=T%Ye&GU-yPx3TVgnQ*YSqGz7jxu-$e~G4|gnxAMc8 R5)Q3)2~m#i5~7?hxBz2fBjo@9 delta 145 zcmZoTpwe(aWrGAGQ`g>RDaLjwMi6EKVrC#_0b*7lX4@{s$R73Ds%tN2CIb*K0dWct zv*>d$u!wSigcx9QJV3Sx5N818GT?I4*S%qv0@|_t)Ejm?4FPEb)hPe{dwnKsb<*N+ RvHjjIA +#include napi_value connect_sync_root_impl(napi_env env, napi_callback_info args) { diff --git a/native-src/virtual_drive/hydrate_file.cpp b/native-src/virtual_drive/hydrate_file.cpp index bedfe4cd..8aabc0c0 100644 --- a/native-src/virtual_drive/hydrate_file.cpp +++ b/native-src/virtual_drive/hydrate_file.cpp @@ -1,8 +1,8 @@ -#include "thread" -#include "string" -#include "Windows.h -#include "Placeholders.h" -#include "napi_extract_args.h" +#include +#include +#include +#include +#include struct AsyncWork { From 3e4476a0a922683c5a5f80a49c9be4dbd3124d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Tue, 4 Nov 2025 12:04:51 +0100 Subject: [PATCH 11/11] Remove handle for path (#207) --- binding.gyp | 1 - dist/addon.node | Bin 598016 -> 593920 bytes .../placeholders_interface/PlaceHolderInfo.h | 27 ------ include/placeholders_interface/Placeholders.h | 9 +- .../PlaceHolderInfo.cpp | 88 ------------------ .../placeholders_interface/Planceholders.cpp | 1 - .../callbacks/FetchData/FetchData.cpp | 6 +- 7 files changed, 12 insertions(+), 120 deletions(-) delete mode 100644 include/placeholders_interface/PlaceHolderInfo.h delete mode 100644 native-src/placeholders_interface/PlaceHolderInfo.cpp diff --git a/binding.gyp b/binding.gyp index 858e963a..8f2aacf2 100644 --- a/binding.gyp +++ b/binding.gyp @@ -17,7 +17,6 @@ "native-src/logger/Logger.cpp", "native-src/logger/LoggerPath.cpp", "native-src/main.cpp", - "native-src/placeholders_interface/PlaceHolderInfo.cpp", "native-src/placeholders_interface/Planceholders.cpp", "native-src/sync_root_interface/SyncRoot.cpp", "native-src/sync_root_interface/Utilities.cpp", diff --git a/dist/addon.node b/dist/addon.node index 58d9b178220ba4005ff9c4ce193075d14f1421ef..381ce8ccb89f9bbba60d52b4a42dda56894414be 100644 GIT binary patch delta 164988 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 F{|{=KoRR - -struct FileState -{ - std::string placeholderId; - CF_PIN_STATE pinState; -}; - -class FileHandle -{ -public: - using Deleter = void (*)(void *); - - FileHandle(); - FileHandle(void *data, Deleter deleter); - - inline void *get() const { return _data.get(); } - inline explicit operator bool() const noexcept { return static_cast(_data); } - -private: - std::unique_ptr _data; -}; - -FileHandle handleForPath(const std::wstring &path); diff --git a/include/placeholders_interface/Placeholders.h b/include/placeholders_interface/Placeholders.h index ac1befec..335a555e 100644 --- a/include/placeholders_interface/Placeholders.h +++ b/include/placeholders_interface/Placeholders.h @@ -1,7 +1,14 @@ #pragma once + #include #include -#include +#include + +struct FileState +{ + std::string placeholderId; + CF_PIN_STATE pinState; +}; class Placeholders { diff --git a/native-src/placeholders_interface/PlaceHolderInfo.cpp b/native-src/placeholders_interface/PlaceHolderInfo.cpp deleted file mode 100644 index efb60713..00000000 --- a/native-src/placeholders_interface/PlaceHolderInfo.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "PlaceHolderInfo.h" -#include -#include -#include -#include -#include -#include "Logger.h" - -FileHandle::FileHandle() - : _data( - nullptr, [](void *) {}) -{ -} - -FileHandle::FileHandle(void *data, Deleter deleter) - : _data(data, deleter) -{ -} - -FileHandle handleForPath(const std::wstring &wPath) -{ - if (wPath.empty()) - { - return {}; - } - - /** - * v1.0.9 Jonathan Arce - * - * We directly use the wPath parameter in handleForPath for several important reasons: - * - * 1. Performance optimization: Using wPath directly avoids unnecessary string conversions - * between wide strings and UTF-8/ANSI, which would be costly for file operations. - * - * 2. Unicode support: Windows APIs like CfOpenFileWithOplock and CreateFileW require wide - * character strings (wchar_t) to properly handle Unicode paths with international - * characters, spaces, and special symbols. - */ - - std::filesystem::path pathFs(wPath); - if (!std::filesystem::exists(pathFs)) - { - return {}; - } - - if (std::filesystem::is_directory(pathFs)) - { - HANDLE handle = nullptr; - const HRESULT openResult = CfOpenFileWithOplock(wPath.c_str(), CF_OPEN_FILE_FLAG_NONE, &handle); - if (openResult == S_OK) - { - return {handle, [](HANDLE h) - { CfCloseHandle(h); }}; - } - else - { - // Convert only for logging purposes - std::wstring_convert> converter; - std::string path = converter.to_bytes(wPath); - printf("Could not CfOpenFileWithOplock for path: %s with error: %ld\n", path.c_str(), openResult); - } - } - else if (std::filesystem::is_regular_file(pathFs)) - { - HANDLE handle = CreateFileW( - wPath.c_str(), // Use wide string path directly - FILE_READ_ATTRIBUTES, - FILE_SHARE_READ | FILE_SHARE_WRITE, - nullptr, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - nullptr); - if (handle != INVALID_HANDLE_VALUE) - { - return {handle, [](HANDLE h) - { CloseHandle(h); }}; - } - else - { - // Convert only for logging purposes - std::wstring_convert> converter; - std::string path = converter.to_bytes(wPath); - printf("Could not CreateFile for path: %s with error: %ld\n", path.c_str(), GetLastError()); - } - } - - return {}; -} \ No newline at end of file diff --git a/native-src/placeholders_interface/Planceholders.cpp b/native-src/placeholders_interface/Planceholders.cpp index 56664ad4..90f0d6c6 100644 --- a/native-src/placeholders_interface/Planceholders.cpp +++ b/native-src/placeholders_interface/Planceholders.cpp @@ -1,7 +1,6 @@ #include "stdafx.h" #include "Placeholders.h" #include "Logger.h" -#include "PlaceholderInfo.h" #include #include #include diff --git a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp index 3366060f..3eff8ac9 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include #include #include #include @@ -17,6 +17,7 @@ #include #include #include +#include napi_threadsafe_function g_fetch_data_threadsafe_callback = nullptr; @@ -213,7 +214,8 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in ::Sleep(CHUNKDELAYMS); - CfSetPinState(handleForPath(ctxPtr->fullClientPath.c_str()).get(), CF_PIN_STATE_PINNED, CF_SET_PIN_FLAG_NONE, nullptr); + auto fileHandle = Placeholders::OpenFileHandle(ctxPtr->fullClientPath.c_str(), FILE_WRITE_ATTRIBUTES, true); + CfSetPinState(fileHandle.get(), CF_PIN_STATE_PINNED, CF_SET_PIN_FLAG_NONE, nullptr); } {