/* * Copyright 2015-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ using System; using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; using ThirdParty.Json.LitJson; namespace Amazon.MobileAnalytics.MobileAnalyticsManager.Internal { /// <summary> /// The interface for managing events storage. /// </summary> public interface IEventStore:IDisposable { /// <summary> /// Add an event to the store. /// </summary> /// <param name="value">Amazon Mobile Analytics event in string.</param> /// <param name="appId">Amazon Mobile Analytics App ID.</param> /// <returns><c>true</c>, if event was put, <c>false</c> otherwise.</returns> void PutEvent(string value, string appId); /// <summary> /// Get events from the Event Store /// </summary> /// <param name="appid">Amazon Mobile Analytics App Id.</param> /// <param name="maxAllowed">Max number of events is allowed to return.</param> /// <returns>The events as a List of <see cref="ThirdParty.Json.LitJson.JsonData"/>.</returns> List<JsonData> GetEvents(string appid, int maxAllowed); /// <summary> /// Deletes a list of events. /// </summary> /// <param name="rowIds">List of row identifiers.</param> /// <returns><c>true</c>, if events was deleted, <c>false</c> otherwise.</returns> void DeleteEvent(List<string> rowIds); /// <summary> /// Gets Numbers the of events. /// </summary> /// <param name="appId">Amazon Mobile Analytics App Identifier.</param> /// <returns>The number of events.</returns> long NumberOfEvents(string appId); /// <summary> /// Gets the size of the database. /// </summary> /// <returns>The database size.</returns> long DatabaseSize { get; } } }