Interface FlowFactory

  • All Known Implementing Classes:
    RealmFlowFactory

    public interface FlowFactory
    Factory interface for creating Kotlin Flows for Realm classes.
    • Method Detail

      • from

        kotlinx.coroutines.flow.Flow<Realm> from​(@Nonnull
                                                 Realm realm)
        Creates a Flow for a Realm. It should emit the initial state of the Realm when subscribed to and on each subsequent update of the Realm.
        Parameters:
        realm - Realm instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the Realm.
      • from

        kotlinx.coroutines.flow.Flow<DynamicRealm> from​(@Nonnull
                                                        DynamicRealm dynamicRealm)
        Creates a Flow for a DynamicRealm. It should emit the initial state of the Realm when subscribed to and on each subsequent update of the Realm.
        Parameters:
        dynamicRealm - DynamicRealm instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the Realm.
      • from

        <T> kotlinx.coroutines.flow.Flow<RealmResults<T>> from​(@Nonnull
                                                               Realm realm,
                                                               @Nonnull
                                                               RealmResults<T> results)
        Creates a Flow for a RealmResults. It should emit the initial RealmResult when subscribed to and on each subsequent update of the RealmResults.
        Type Parameters:
        T - type of RealmObject.
        Parameters:
        results - RealmResults instance being observed for changes to be emitted by the flow.
        realm - Realm instance from where the results are coming.
        Returns:
        Flow that emits all updates to the RealmObject.
      • changesetFrom

        <T> kotlinx.coroutines.flow.Flow<CollectionChange<RealmResults<T>>> changesetFrom​(@Nonnull
                                                                                          Realm realm,
                                                                                          @Nonnull
                                                                                          RealmResults<T> results)
        Creates a Flow for a RealmResults instance. It should emit the initial results when subscribed to and on each subsequent update of the results it should emit the results plus the CollectionChange that describes the update.

        Changeset observables do not support backpressure as a changeset depends on the state of the previous changeset. Handling backpressure should therefore be left to the user.

        Parameters:
        realm - Realm instance from where the object is coming.
        results - RealmResults instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the RealmResults.
      • from

        <T> kotlinx.coroutines.flow.Flow<RealmResults<T>> from​(@Nonnull
                                                               DynamicRealm dynamicRealm,
                                                               @Nonnull
                                                               RealmResults<T> results)
        Creates a Flow for a RealmResults. It should emit the initial RealmResult when subscribed to and on each subsequent update of the RealmResults.
        Type Parameters:
        T - type of RealmObject.
        Parameters:
        results - RealmResults instance being observed for changes to be emitted by the flow.
        dynamicRealm - DynamicRealm instance from where the results are coming.
        Returns:
        Flow that emits all updates to the RealmObject.
      • changesetFrom

        <T> kotlinx.coroutines.flow.Flow<CollectionChange<RealmResults<T>>> changesetFrom​(@Nonnull
                                                                                          DynamicRealm dynamicRealm,
                                                                                          @Nonnull
                                                                                          RealmResults<T> results)
        Creates a Flow for a RealmResults instance. It should emit the initial results when subscribed to and on each subsequent update of the results it should emit the results plus the CollectionChange that describes the update.

        Changeset observables do not support backpressure as a changeset depends on the state of the previous changeset. Handling backpressure should therefore be left to the user.

        Parameters:
        dynamicRealm - DynamicRealm instance from where the object is coming.
        results - RealmResults instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the RealmResults.
      • from

        <T> kotlinx.coroutines.flow.Flow<RealmList<T>> from​(@Nonnull
                                                            Realm realm,
                                                            @Nonnull
                                                            RealmList<T> realmList)
        Creates a Flow for a RealmList. It should emit the initial RealmResult when subscribed to and on each subsequent update of the RealmList.

        Note: RealmChangeListener is currently not supported on RealmLists.

        Type Parameters:
        T - type of RealmObject
        Parameters:
        realmList - RealmList instance being observed for changes to be emitted by the flow.
        realm - Realm instance from where the results are coming.
        Returns:
        Flow that emit all updates to the RealmList.
      • changesetFrom

        <T> kotlinx.coroutines.flow.Flow<CollectionChange<RealmList<T>>> changesetFrom​(@Nonnull
                                                                                       Realm realm,
                                                                                       @Nonnull
                                                                                       RealmList<T> list)
        Creates a Flow for a RealmList. It should emit the initial list when subscribed to and on each subsequent update of the list it should emit the list plus the CollectionChange that describes the update.

        Changeset observables do not support backpressure as a changeset depends on the state of the previous changeset. Handling backpressure should therefore be left to the user.

        Parameters:
        realm - Realm instance from where the object is coming.
        list - RealmList instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the RealmList.
      • from

        <T> kotlinx.coroutines.flow.Flow<RealmList<T>> from​(@Nonnull
                                                            DynamicRealm dynamicRealm,
                                                            @Nonnull
                                                            RealmList<T> realmList)
        Creates a Flow for a RealmList. It should emit the initial RealmResult when subscribed to and on each subsequent update of the RealmList.

        Note: RealmChangeListener is currently not supported on RealmLists.

        Type Parameters:
        T - type of RealmObject
        Parameters:
        realmList - RealmList instance being observed for changes to be emitted by the flow.
        dynamicRealm - DynamicRealm instance from where the results are coming.
        Returns:
        Flow that emit all updates to the RealmList.
      • changesetFrom

        <T> kotlinx.coroutines.flow.Flow<CollectionChange<RealmList<T>>> changesetFrom​(@Nonnull
                                                                                       DynamicRealm dynamicRealm,
                                                                                       @Nonnull
                                                                                       RealmList<T> list)
        Creates a Flow for a RealmList. It should emit the initial list when subscribed to and on each subsequent update of the list it should emit the list plus the CollectionChange that describes the update.

        Changeset observables do not support backpressure as a changeset depends on the state of the previous changeset. Handling backpressure should therefore be left to the user.

        Parameters:
        dynamicRealm - DynamicRealm instance from where the object is coming.
        list - RealmList instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the RealmList.
      • from

        <T extends RealmModel> kotlinx.coroutines.flow.Flow<T> from​(@Nonnull
                                                                    Realm realm,
                                                                    @Nonnull
                                                                    T realmObject)
        Creates a Flow for a RealmObject. It should emit the initial object when subscribed to and on each subsequent update of the object.
        Type Parameters:
        T - type of query target
        Parameters:
        realmObject - RealmObject instance being observed for changes to be emitted by the flow.
        realm - Realm instance from where the object is coming.
        Returns:
        Flow that emits all updates to the DynamicRealmObject.
      • changesetFrom

        <T extends RealmModel> kotlinx.coroutines.flow.Flow<ObjectChange<T>> changesetFrom​(@Nonnull
                                                                                           Realm realm,
                                                                                           @Nonnull
                                                                                           T realmObject)
        Creates a Flow for a RealmObject. It should emit the initial object when subscribed to and on each subsequent update of the object it should emit the object plus the ObjectChangeSet that describes the update.

        Changeset observables do not support backpressure as a changeset depends on the state of the previous changeset. Handling backpressure should therefore be left to the user.

        Parameters:
        realm - Realm instance from where the object is coming.
        realmObject - RealmObject instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the DynamicRealmObject.
      • changesetFrom

        kotlinx.coroutines.flow.Flow<ObjectChange<DynamicRealmObject>> changesetFrom​(@Nonnull
                                                                                     DynamicRealm dynamicRealm,
                                                                                     @Nonnull
                                                                                     DynamicRealmObject dynamicRealmObject)
        Creates a Flow for a DynamicRealmObject. It should emit the initial object when subscribed to and on each subsequent update of the object it should emit the object plus the ObjectChangeSet that describes the update.

        Changeset observables do not support backpressure as a changeset depends on the state of the previous changeset. Handling backpressure should therefore be left to the user.

        Parameters:
        dynamicRealm - DynamicRealm instance from where the object is coming.
        dynamicRealmObject - DynamicRealmObject instance being observed for changes to be emitted by the flow.
        Returns:
        Flow that emits all updates to the DynamicRealmObject.