// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #import #import "MSChannelProtocol.h" NS_ASSUME_NONNULL_BEGIN @class MSChannelUnitConfiguration; @protocol MSIngestionProtocol; @protocol MSChannelUnitProtocol; /** * `MSChannelGroupProtocol` represents a kind of channel that contains constituent MSChannelUnit objects. When an operation from the * `MSChannelProtocol` is performed on the group, that operation should be propagated to its constituent MSChannelUnit objects. */ @protocol MSChannelGroupProtocol /** * Initialize a channel unit with the given configuration. * * @param configuration channel configuration. * * @return The added `MSChannelUnitProtocol`. Use this object to enqueue logs. */ - (id)addChannelUnitWithConfiguration:(MSChannelUnitConfiguration *)configuration; /** * Initialize a channel unit with the given configuration. * * @param configuration channel configuration. * @param ingestion The alternative ingestion object * * @return The added `MSChannelUnitProtocol`. Use this object to enqueue logs. */ - (id)addChannelUnitWithConfiguration:(MSChannelUnitConfiguration *)configuration withIngestion:(nullable id)ingestion; /** * Change the base URL (schema + authority + port only) used to communicate with the backend. * * @param logUrl base URL to use for backend communication. */ - (void)setLogUrl:(NSString *)logUrl; /** * Set the app secret. * * @param appSecret The app secret. */ - (void)setAppSecret:(NSString *)appSecret; /** * Set the maximum size of the internal storage. This method must be called before App Center is started. * * @discussion The default maximum database size is 10485760 bytes (10 MiB). * * @param sizeInBytes Maximum size of the internal storage in bytes. This will be rounded up to the nearest multiple of a SQLite page size * (default is 4096 bytes). Values below 24576 bytes (24 KiB) will be ignored. * @param completionHandler Callback that is invoked when the database size has been set. The `BOOL` parameter is `YES` if changing the size * is successful, and `NO` otherwise. */ - (void)setMaxStorageSize:(long)sizeInBytes completionHandler:(nullable void (^)(BOOL))completionHandler; /** * Return a channel unit instance for the given groupId. * * @param groupId The group ID for a channel unit. * * @return A channel unit instance or `nil`. */ - (id)channelUnitForGroupId:(NSString *)groupId; @end NS_ASSUME_NONNULL_END