/*
* 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
{
///
/// The interface for managing events storage.
///
public interface IEventStore:IDisposable
{
///
/// Add an event to the store.
///
/// Amazon Mobile Analytics event in string.
/// Amazon Mobile Analytics App ID.
/// true, if event was put, false otherwise.
void PutEvent(string value, string appId);
///
/// Get events from the Event Store
///
/// Amazon Mobile Analytics App Id.
/// Max number of events is allowed to return.
/// The events as a List of .
List GetEvents(string appid, int maxAllowed);
///
/// Deletes a list of events.
///
/// List of row identifiers.
/// true, if events was deleted, false otherwise.
void DeleteEvent(List rowIds);
///
/// Gets Numbers the of events.
///
/// Amazon Mobile Analytics App Identifier.
/// The number of events.
long NumberOfEvents(string appId);
///
/// Gets the size of the database.
///
/// The database size.
long DatabaseSize { get; }
}
}