From d861347e50054f92947e12f369da0e50d3110850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Wed, 13 Oct 2021 10:20:55 +0200 Subject: [PATCH] Adopting to changes in Realm Core --- src/js_app.hpp | 4 +--- src/js_sync.hpp | 16 ++++++++-------- src/logger.hpp | 27 +++++++-------------------- 3 files changed, 16 insertions(+), 31 deletions(-) diff --git a/src/js_app.hpp b/src/js_app.hpp index ae63ac6a24..17666d42bd 100644 --- a/src/js_app.hpp +++ b/src/js_app.hpp @@ -181,9 +181,7 @@ void AppClass::constructor(ContextType ctx, ObjectType this_object, Arguments throw std::runtime_error("Expected either a configuration object or an app id string."); } - config.transport_generator = [ctx = Protected(Context::get_global_context(ctx)), eld=NetworkTransport::make_dispatcher()] { - return AppClass::transport_generator(ctx, eld); - }; + config.transport = AppClass::transport_generator(Protected(Context::get_global_context(ctx)), NetworkTransport::make_dispatcher()); config.platform = platform_os; config.platform_version = platform_version; diff --git a/src/js_sync.hpp b/src/js_sync.hpp index 8396dcdc51..a31383baf1 100644 --- a/src/js_sync.hpp +++ b/src/js_sync.hpp @@ -412,14 +412,14 @@ void SessionClass::add_progress_notification(ContextType ctx, ObjectType this if (auto session = get_internal>(ctx, this_object)->lock()) { - std::string direction = Value::validated_to_string(ctx, args[0], "direction"); + std::string direction_str = Value::validated_to_string(ctx, args[0], "direction"); std::string mode = Value::validated_to_string(ctx, args[1], "mode"); - SyncSession::NotifierType notifierType; - if (direction == "download") { - notifierType = SyncSession::NotifierType::download; + SyncSession::ProgressDirection direction; + if (direction_str == "download") { + direction = SyncSession::ProgressDirection::download; } - else if (direction == "upload") { - notifierType = SyncSession::NotifierType::upload; + else if (direction_str == "upload") { + direction = SyncSession::ProgressDirection::upload; } else { throw std::invalid_argument("Invalid argument 'direction'. Only 'download' and 'upload' progress notification directions are supported"); @@ -455,7 +455,7 @@ void SessionClass::add_progress_notification(ContextType ctx, ObjectType this progressFunc = std::move(progress_handler); - auto registrationToken = session->register_progress_notifier(std::move(progressFunc), notifierType, is_streaming); + auto registrationToken = session->register_progress_notifier(std::move(progressFunc), direction, is_streaming); auto syncSession = create_object>(ctx, new WeakSession(session)); PropertyAttributes attributes = ReadOnly | DontEnum | DontDelete; Object::set_property(ctx, callback_function, "_syncSession", syncSession, attributes); @@ -755,7 +755,7 @@ void SyncClass::set_sync_logger(ContextType ctx, ObjectType this_object, Argu }; auto sync_logger = common::logger::Logger::build_sync_logger(show_logs); - app->sync_manager()->set_logger_factory( *sync_logger ); + app->sync_manager()->set_logger_factory(sync_logger); } template diff --git a/src/logger.hpp b/src/logger.hpp index 3b880a775c..464ba42309 100644 --- a/src/logger.hpp +++ b/src/logger.hpp @@ -112,24 +112,6 @@ class SyncLoggerDelegator : public util::RootLogger { Delegated loggerDelegate; }; -class SyncLoggerDelegatorFactory : public realm::SyncLoggerFactory { - public: - SyncLoggerDelegatorFactory(Delegated logs_fn) : logs_fn{logs_fn} {} - - std::unique_ptr make_logger( - realm::util::Logger::Level level) { - auto logger = std::make_unique(); - - logger->set_level_threshold(level); - logger->delegate(logs_fn); - - return logger; - } - - private: - Delegated logs_fn; -}; - class Logger { private: // Warning: If this grows to big (for example: another method) we should @@ -157,8 +139,13 @@ class Logger { throw std::runtime_error("Bad log level"); } - static SyncLoggerDelegatorFactory* build_sync_logger(Delegated& log_fn) { - return new SyncLoggerDelegatorFactory(log_fn); + static SyncClientConfig::LoggerFactory build_sync_logger(Delegated& log_fn) { + return [&log_fn] (realm::util::Logger::Level level) { + auto logger = std::make_unique(); + logger->set_level_threshold(level); + logger->delegate(log_fn); + return logger; + }; } };