diff options
Diffstat (limited to 'libs/binder/include/binder/LazyServiceRegistrar.h')
-rw-r--r-- | libs/binder/include/binder/LazyServiceRegistrar.h | 60 |
1 files changed, 4 insertions, 56 deletions
diff --git a/libs/binder/include/binder/LazyServiceRegistrar.h b/libs/binder/include/binder/LazyServiceRegistrar.h index 2e22b84ff0..6d711bc10f 100644 --- a/libs/binder/include/binder/LazyServiceRegistrar.h +++ b/libs/binder/include/binder/LazyServiceRegistrar.h @@ -16,8 +16,6 @@ #pragma once -#include <functional> - #include <binder/IServiceManager.h> #include <binder/Status.h> #include <utils/StrongPointer.h> @@ -28,19 +26,7 @@ namespace internal { class ClientCounterCallback; } // namespace internal -/** - * Exits when all services registered through this object have 0 clients - * - * In order to use this class, it's expected that your service: - * - registers all services in the process with this API - * - configures services as oneshot in init .rc files - * - configures services as disabled in init.rc files, unless a client is - * guaranteed early in boot, in which case, forcePersist should also be used - * to avoid races. - * - uses 'interface' declarations in init .rc files - * - * For more information on init .rc configuration, see system/core/init/README.md - **/ +/** Exits when all services registered through this object have 0 clients */ class LazyServiceRegistrar { public: static LazyServiceRegistrar& getInstance(); @@ -50,53 +36,15 @@ class LazyServiceRegistrar { int dumpFlags = IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT); /** * Force the service to persist, even when it has 0 clients. - * If setting this flag from the server side, make sure to do so before calling - * registerService, or there may be a race with the default dynamic shutdown. - * - * This should only be used if it is every eventually set to false. If a - * service needs to persist but doesn't need to dynamically shut down, - * prefer to control it with another mechanism such as ctl.start. + * If setting this flag from the server side, make sure to do so before calling registerService, + * or there may be a race with the default dynamic shutdown. */ void forcePersist(bool persist); - /** - * Set a callback that is invoked when the active service count (i.e. services with clients) - * registered with this process drops to zero (or becomes nonzero). - * The callback takes a boolean argument, which is 'true' if there is - * at least one service with clients. - * - * Callback return value: - * - false: Default behavior for lazy services (shut down the process if there - * are no clients). - * - true: Don't shut down the process even if there are no clients. - * - * This callback gives a chance to: - * 1 - Perform some additional operations before exiting; - * 2 - Prevent the process from exiting by returning "true" from the - * callback. - * - * This method should be called before 'registerService' to avoid races. - */ - void setActiveServicesCallback(const std::function<bool(bool)>& activeServicesCallback); - - /** - * Try to unregister all services previously registered with 'registerService'. - * Returns 'true' if successful. This should only be called within the callback registered by - * setActiveServicesCallback. - */ - bool tryUnregister(); - - /** - * Re-register services that were unregistered by 'tryUnregister'. - * This method should be called in the case 'tryUnregister' fails - * (and should be called on the same thread). - */ - void reRegister(); - private: std::shared_ptr<internal::ClientCounterCallback> mClientCC; LazyServiceRegistrar(); }; } // namespace binder -} // namespace android +} // namespace android
\ No newline at end of file |