summaryrefslogtreecommitdiff
path: root/libs/binder/include/binder/LazyServiceRegistrar.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/binder/include/binder/LazyServiceRegistrar.h')
-rw-r--r--libs/binder/include/binder/LazyServiceRegistrar.h60
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