10.27.03

ICacheSession Interface

Session for performing cache requests. This is created through CreateCacheSession(CacheSessionProperties)

Definition

Namespace: SolaceSystems.Solclient.Messaging.Cache
Assembly: SolaceSystems.Solclient.Messaging (in SolaceSystems.Solclient.Messaging.dll) Version: 10.27.0
C#
public interface ICacheSession : IDisposable
Implements
IDisposable

Methods

CancelCacheRequests Cancel all in progress cache requests for a given cache session. This function is thread safe and can be called from any thread. When this function is invoked:
  • All blocked synchronous cache requests will return immediately with SOLCLIENT_INCOMPLETE return code and CacheRequestCancelled subcode.
  • A cache event RequestCompletedNotice with a subcode of CacheRequestCancelled is generated for each in progress asynchronous cache request.
  • The associated cache session is still valid to use.
  • Live messages that have been queued (if any) will be delivered.
  • DisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
    (Inherited from IDisposable)
    GetSession Gets the ISession that created this ICacheSession.
    SendCacheRequest(Int64, ITopic, Boolean, CacheLiveDataAction) A synchronous cache request that waits for the cache response to be fulfilled according to the CacheLiveDataAction handling options.

    Note: Cache requests may be flow controlled if the underlying transport is flow controlled. The transport is considered flow controlled if the library is unable to write to transport device (for example, the TCP socket is full), or if there are more than 1000 session requests (ICacheSession.SendCacheRequest(...) + ISession.SendRequest(...)) outstanding. This will cause ICacheSession.SendCacheRequest(...) to block if the session property, SendBlocking is enabled. If SendBlocking is disabled and it is not possible to write the cache request to the underlying transport, SOLCLIENT_WOULD_BLOCK is returned.

    Cached messages received in response to the cache request are delivered to the application through the usual receive message callback delegate as the messages arrive. This function returns when all cache responses have been returned, and the request is either completed by live data (FULFILL), or by timeout.

    SendCacheRequest(Int64, ITopic, Boolean, CacheLiveDataAction, EventHandlerCacheRequestEventArgs) Asynchronous cache request, returns immediately upon successful buffering of the cache request for transmission. The result of the request is reported through the cacheRequestListener.

    Note: Cache requests may be flow controlled if the underlying transport is flow controlled. The transport is considered flow controlled if the library is unable to write to transport device (for example, the TCP socket is full), or if there are more than 1000 session requests (ICacheSession.SendCacheRequest(...) + ISession.SendRequest(...)) outstanding. This will cause ICacheSession.SendCacheRequest(...) to block if the session property, SendBlocking is enabled. If SendBlocking is disabled and it is not possible to write the cache request to the underlying transport, SOLCLIENT_WOULD_BLOCK is returned.

    Cached messages received in response to the cache request are delivered to the application through the usual receive message callback delegate as the messages arrive.

    SendCacheRequest(Int64, ITopic, Boolean, CacheLiveDataAction, Int64, Int64)

    This method is used for SolCache-RS only.

    A synchronous cache request that waits for the cache response to be fulfilled according to the CacheLiveDataAction handling options.

    Note: Cache requests may be flow controlled if the underlying transport is flow controlled. The transport is considered flow controlled if the library is unable to write to transport device (for example, the TCP socket is full), or if there are more than 1000 session requests (ICacheSession.SendCacheRequest(...) + ISession.SendRequest(...)) outstanding. This will cause ICacheSession.SendCacheRequest(...) to block if the session property, SendBlocking is enabled. If SendBlocking is disabled and it is not possible to write the cache request to the underlying transport, SOLCLIENT_WOULD_BLOCK is returned.

    Cached messages received in response to the cache request are delivered to the application through the usual receive message callback delegate as the messages arrive. This function returns when all cache responses have been returned, and the request is either completed by live data (FULFILL), or by timeout.

    SendCacheRequest(Int64, ITopic, Boolean, CacheLiveDataAction, EventHandlerCacheRequestEventArgs, Int64, Int64)

    This method is used for SolCache-RS only.

    Asynchronous cache request, returns immediately upon successful buffering of the cache request for transmission. The result of the request is reported through the cacheRequestListener.

    Note: Cache requests may be flow controlled if the underlying transport is flow controlled. The transport is considered flow controlled if the library is unable to write to transport device (for example, the TCP socket is full), or if there are more than 1000 session requests (ICacheSession.SendCacheRequest(...) + ISession.SendRequest(...)) outstanding. This will cause ICacheSession.SendCacheRequest(...) to block if the session property, SendBlocking is enabled. If SendBlocking is disabled and it is not possible to write the cache request to the underlying transport, SOLCLIENT_WOULD_BLOCK is returned.

    Cached messages received in response to the cache request are delivered to the application through the usual receive message callback delegate as the messages arrive.

    See Also