package ru.codeinside.gws.api;
import java.io.Closeable;
import java.io.OutputStream;
/**
* Журнал действий для экземпляра клиента (потребителя СМЭВ) на уровне СИУ и на уровне транспорта HTTP.
* За создание отвечает {@link ru.codeinside.gws.api.LogService#createClientLog(long, String, String, boolean, boolean, String)}
*
* @author xeodon
* @see LogService
* @since 1.0.7
*/
public interface ClientLog extends Closeable {
/**
* Регистрация исключительной ситуации.
*
* @param e сиутация.
*/
void log(Throwable e);
/**
* Получить поток регистрация данных HTTP из исходящего транспортного потока.
*
* @return поток для регистрации.
*/
OutputStream getHttpOutStream();
/**
* Получить поток регистрация данных HTTP из входящего транспортного потока.
*
* @return поток для регистрации.
*/
OutputStream getHttpInStream();
/**
* Регистрация запроса клиента к поставщику до отправки в исходящий транпортный поток.
*
* @param request запрос клиента к постащику.
*/
void logRequest(ClientRequest request);
/**
* Регистрация ответка от постащика к клиенту после разбора входяшего транпортного потока.
*
* @param response ответ постащика к клиенту.
*/
void logResponse(ClientResponse response);
/**
* Закрыть журнал.
*/
void close();
}