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