using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Integration.ExternalBridge;
using Tango.PMR.Diagnostics;
namespace Tango.PPC.Common.EventLogging
{
///
/// Represents a database events logger.
///
public interface IEventLogger : IExternalBridgeRequestHandler
{
///
/// Occurs when a new machine event has been received.
///
event EventHandler EventReceived;
///
/// Occurs when a machine event has been resolved.
///
event EventHandler EventResolved;
///
/// Logs the specified machine event.
///
/// The machine event.
void Log(MachinesEvent machineEvent);
///
/// Logs the specified event type.
///
/// Type of the event.
/// The message.
void Log(EventTypes eventType, String message, EventTypes? relatedEventType = null);
///
/// Logs the specified hardware event.
///
/// The hardware event.
void Log(Event hardwareEvent);
///
/// Logs the specified exception using the .
///
/// The exception.
void Log(Exception exception);
///
/// Logs the specified exception using the .
///
/// The exception.
void Log(Exception exception, String description);
///
/// Logs the specified message using the .
///
/// The message.
void Log(String message);
///
/// Immediately saves all pending events to database.
///
void FlushAll();
}
}