SubscriptionManager

Classes > Sync > SubscriptionManager

Manages real-time subscriptions for sync notifications. Implements spec Section 10 (Real-Time Subscriptions).

public static class SubscriptionManager

Methods

CreateRecordSubscription(string, string, string, string, string, string?)

public static SyncSubscription CreateRecordSubscription(string subscriptionId, string originId, string tableName, string pkValues, string timestamp, string? expiresAt = null)

Creates a new record-level subscription.

Parameters:

Name Type Description
subscriptionId String Unique subscription ID.
originId String Subscribing client's origin ID.
tableName String Table to subscribe to.
pkValues String Primary key values to watch (JSON array).
timestamp String Current UTC timestamp.
expiresAt String Optional expiration timestamp.

Returns: SyncSubscription - New subscription record.

CreateTableSubscription(string, string, string, string, string?)

public static SyncSubscription CreateTableSubscription(string subscriptionId, string originId, string tableName, string timestamp, string? expiresAt = null)

Creates a new table-level subscription.

Parameters:

Name Type Description
subscriptionId String Unique subscription ID.
originId String Subscribing client's origin ID.
tableName String Table to subscribe to.
timestamp String Current UTC timestamp.
expiresAt String Optional expiration timestamp.

Returns: SyncSubscription - New subscription record.

CreateQuerySubscription(string, string, string, string, string, string?)

public static SyncSubscription CreateQuerySubscription(string subscriptionId, string originId, string tableName, string queryCriteria, string timestamp, string? expiresAt = null)

Creates a new query-level subscription.

Parameters:

Name Type Description
subscriptionId String Unique subscription ID.
originId String Subscribing client's origin ID.
tableName String Table to subscribe to.
queryCriteria String JSON query criteria for filtering.
timestamp String Current UTC timestamp.
expiresAt String Optional expiration timestamp.

Returns: SyncSubscription - New subscription record.

MatchesChange(SyncSubscription, SyncLogEntry)

public static bool MatchesChange(SyncSubscription subscription, SyncLogEntry change)

Checks if a subscription matches a change.

Parameters:

Name Type Description
subscription SyncSubscription The subscription to check.
change SyncLogEntry The change to match against.

Returns: Boolean - True if the subscription should receive this change.

IsExpired(SyncSubscription, string)

public static bool IsExpired(SyncSubscription subscription, string currentTimestamp)

Checks if a subscription has expired.

Parameters:

Name Type Description
subscription SyncSubscription The subscription to check.
currentTimestamp String Current UTC timestamp.

Returns: Boolean - True if the subscription has expired.

FindMatchingSubscriptions(IEnumerable<SyncSubscription>, SyncLogEntry)

public static IReadOnlyList<SyncSubscription> FindMatchingSubscriptions(IEnumerable<SyncSubscription> subscriptions, SyncLogEntry change)

Finds all subscriptions that match a change.

Parameters:

Name Type Description
subscriptions SyncSubscription> All active subscriptions.
change SyncLogEntry The change to find matching subscriptions for.

Returns: SyncSubscription> - Matching subscriptions.

CreateNotifications(IEnumerable<SyncSubscription>, SyncLogEntry)

public static IReadOnlyList<ChangeNotification> CreateNotifications(IEnumerable<SyncSubscription> subscriptions, SyncLogEntry change)

Creates notifications for all matching subscriptions.

Parameters:

Name Type Description
subscriptions SyncSubscription> All active subscriptions.
change SyncLogEntry The change to notify about.

Returns: ChangeNotification> - Notifications to send.

FilterExpired(IEnumerable<SyncSubscription>, string)

public static IReadOnlyList<SyncSubscription> FilterExpired(IEnumerable<SyncSubscription> subscriptions, string currentTimestamp)

Filters out expired subscriptions.

Parameters:

Name Type Description
subscriptions SyncSubscription> Subscriptions to filter.
currentTimestamp String Current UTC timestamp.

Returns: SyncSubscription> - Active (non-expired) subscriptions.