// -----------------------------------------------------------------------
//
// TODO: Update copyright text.
//
// -----------------------------------------------------------------------
namespace SharedObjects
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using SharedObjects;
using SharedObjects.Protocol;
///
/// Common parts for the SessionLayer.
///
public abstract class AbstractSessionLayer : ISessionLayerToPresentation, ISessionLayer
{
///
/// Set the simulation engine.
///
/// Simulation engine instance.
public abstract void setSimEngine(ISimEngine iSimEngine);
///
/// Clean up.
///
public abstract void Dispose();
///
/// Add presentation layer instance.
///
/// Presentation layer to add
public abstract void addPresentationLayer(IPresentationLayerToSession iPresentationLayer);
///
/// Remove presentation layer instance.
///
/// Presentation layer to remove.
public abstract void removePresentationLayer(IPresentationLayerToSession iPresentationLayer);
///
/// Send data on CAN.
///
/// Target address.
/// Payload data.
/// Payload data length.
public abstract void sendData(uint outAddress, IList response, uint dataLen);
///
/// Receive one data packet.
///
/// Address value.
/// Payload data.
/// Flags value.
/// RES1 Value.
/// RES2 Value.
public abstract void receiveData(uint id, byte[] data0, ushort flags, ulong res1, ulong res2);
///
/// Set CAN bus communicator instance.
///
/// CAN bus communicator instance.
public abstract void setObdCommunicator(IObdCommunicator iObdCommunicator);
}
}