using System;
namespace ZeroLevel.Services.Network
{
public abstract class ZBaseNetwork
: IDisposable
{
public const string DEFAULT_MESSAGE_INBOX = "__message_inbox__";
public const string DEFAULT_REQUEST_INBOX = "__request_inbox__";
protected const string DEFAULT_PING_INBOX = "__ping__";
protected const string DEFAULT_REQUEST_ERROR_INBOX = "__request_error__";
///
/// Размер буфера для приема данных
///
protected const int DEFAULT_RECEIVE_BUFFER_SIZE = 4096;
///
/// Если в течение указанного периода не было сетевой активности, выслать пинг-реквест
///
protected const long HEARTBEAT_PING_PERIOD_TICKS = 1500 * TimeSpan.TicksPerMillisecond;
///
/// Период проверки наличия соединения
///
protected const int HEARTBEAT_UPDATE_PERIOD_MS = 7500;
///
/// Период выполнения запроса, после которого считать его неудачным
///
protected const long MAX_REQUEST_TIME_TICKS = 30000 * TimeSpan.TicksPerMillisecond;
public const int MAX_REQUEST_TIME_MS = 30000;
///
/// Максимальный размер пакета данных для передачи (сериализованный размер фрейма)
///
public const int MAX_FRAME_PAYLOAD_SIZE = 1024 * 1024 * 32;
///
/// Начальный байт заголовка пакета данных
///
public const byte PACKET_HEADER_START_BYTE = 181;
///
/// Размер очереди сообщения для отправки
///
public const int MAX_SEND_QUEUE_SIZE = 1024;
protected ZTransportStatus _status = ZTransportStatus.Initialized;
public ZTransportStatus Status { get { return _status; } }
public abstract void Dispose();
}
}