ModuleManager

interface ModuleManager

The ModuleManager is responsible for managing Module implementations throughout the Tealium instance lifecycle.

This class provides the means of interacting with other Module implementations, either by fetching a specific Module implementation or by observing which Modules are enabled.

Nothing is emitted while the modules are being created or updated, so a subscriber arriving mid-pass waits for that pass to complete instead of being handed the answer of the previous one. Once emitting, null / emptyList() means the Module is not enabled, never that it has not been created yet. The resolved Modules are emitted again only when they change by identity or order, so a Module reconfigured in place by Module.updateConfiguration is not re-emitted. A value that varies over time for the same Module is not re-emitted: observe it through the Module itself.

Functions

Link copied to clipboard
abstract fun <T : Module> getModuleOfType(clazz: Class<T>, callback: Callback<T?>): Disposable

Asynchronously retrieves the first Module implementation that implements or extends the given clazz. The callback is called exactly once, and only once the modules are ready: a null result therefore means the Module is not enabled, and never that it has not been created yet.

Link copied to clipboard
abstract fun <T : Module> observeModule(clazz: Class<T>): Observable<T?>

Observes the Module matching the given clazz, regardless of whether it is currently enabled.

Link copied to clipboard
abstract fun <T : Module> observeModules(clazz: Class<T>): Observable<List<T>>

Observes every Module matching the given clazz, regardless of whether they are currently enabled.