All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arm.mbed.cloud.sdk.subscribe.CloudSubscriptionManager Maven / Gradle / Ivy

package com.arm.mbed.cloud.sdk.subscribe;

import io.reactivex.BackpressureStrategy;

import com.arm.mbed.cloud.sdk.annotations.DefaultValue;
import com.arm.mbed.cloud.sdk.annotations.NonNull;
import com.arm.mbed.cloud.sdk.annotations.Nullable;
import com.arm.mbed.cloud.sdk.annotations.Preamble;
import com.arm.mbed.cloud.sdk.connect.model.Resource;
import com.arm.mbed.cloud.sdk.subscribe.model.AsynchronousResponseObserver;
import com.arm.mbed.cloud.sdk.subscribe.model.DeviceStateFilterOptions;
import com.arm.mbed.cloud.sdk.subscribe.model.DeviceStateObserver;
import com.arm.mbed.cloud.sdk.subscribe.model.FirstValue;
import com.arm.mbed.cloud.sdk.subscribe.model.ResourceValueObserver;
import com.arm.mbed.cloud.sdk.subscribe.model.SubscriptionFilterOptions;

@Preamble(description = "Definition of the subscription manager for Pelion Cloud")
public interface CloudSubscriptionManager extends SubscriptionManager {

    String DEFAULT_BACKPRESSURE_STRATEGY = "BUFFER";

    /**
     * Creates an observer {@link Observer } which listens to device state changes that verify the filter.
     * 

* Use {@link #deviceStateChanges(DeviceStateFilterOptions, BackpressureStrategy)} instead. * * @param filter * filter to apply for this channel. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @return a registered observer which listens to some device state changes. */ @Deprecated @Nullable DeviceStateObserver deviceState(@Nullable DeviceStateFilterOptions filter, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy); /** * Creates an observer {@link Observer } which listens to device state changes that verify the filter. * * @param filter * filter to apply for this channel. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @return a registered observer which listens to some device state changes. */ @Nullable DeviceStateObserver deviceStateChanges(@Nullable DeviceStateFilterOptions filter, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy); /** * Creates an observer {@link Observer } which listens to resource values of resources that match the filter. * * @param filter * filter to apply for this channel. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @return a registered observer which listens to some resource values. */ @Nullable ResourceValueObserver resourceValues(@Nullable SubscriptionFilterOptions filter, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy); /** * Creates an observer {@link Observer } which listens to resource values of resources that match the filter. * * @param filter * filter to apply for this channel. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @param triggerMode * mode describing when the first value should be retrieved * @return a registered observer which listens to some resource values. */ @Nullable ResourceValueObserver resourceValues(@Nullable SubscriptionFilterOptions filter, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy, FirstValue triggerMode); /** * Creates an observer {@link Observer } which listens to values of a resource * * @param resource * resource to subscribe to. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @param triggerMode * mode describing when the first value should be retrieved * @return a registered observer which listens to values of a resource. */ @Nullable ResourceValueObserver resourceValues(@Nullable Resource resource, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy, FirstValue triggerMode); /** * Creates an observer {@link Observer } which listens to values of a resource * * @param resource * resource to subscribe to. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @return a registered observer which listens to values of a resource. */ @Nullable ResourceValueObserver resourceValues(@Nullable Resource resource, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy); /** * Creates an observer {@link Observer } which listens to asynchronous responses. * * @param requestId * Identifier of the request * @param resource * resource the request targeted. * @param notifyOtherObservers * States whether this observer should notify other observers on response. * @param strategy * backpressure strategy to apply to underlying communication channel. @see {@link BackpressureStrategy} * @return a registered observer which listens to values of a resource. */ @Nullable AsynchronousResponseObserver asynchronousResponse(@Nullable String requestId, @Nullable Resource resource, boolean notifyOtherObservers, @NonNull @DefaultValue(DEFAULT_BACKPRESSURE_STRATEGY) BackpressureStrategy strategy); // TODO the following // @Nullable // Object currentResourceValue(...) }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy