ActiveObjectDecorator

public interface ActiveObjectDecorator<C>

Класс содержит вспомогательные методы.

Обоснование именования методов:

call.. - вызов метода производится в текущем потоке

invoke.. - вызов метода производится в другом потоке

post.. - вызов метода производится в другом потоке через очередь обработки сообщений

..Proc../..Func.. - разделение по типу анонимного метода. Было введено из-за сложности использования методов из Scala.

Methods

invokeFunc

<R> R invokeFunc(ForwardFunctionWithArg<C, R> func, int timeout)

Выполнение в потоке активного объекта с таймаутом ожидания завершения действия.

СИНХРОННЫЙ МЕТОД с ожиданием завершения выполнения. Если поток вызова метода совпадает с потоком активного объекта, анонимный метод будет выполнен синхронно, без использования очереди команд активного объекта.

Parameters:
  • func – исполняемый анонимный метод

  • timeout – таймаут, миллисекунды. Если ‘0’, ожидание будет до завершения асинхронного дейсвтия.

  • <R> – Тип результата выполняемой функции

Throws:
  • ApplicationException – Если не удалось захвватить Listener актёра, или при выполнении возника ошибка.

Returns:

<R>

invokeFunc

<R> R invokeFunc(ForwardFunctionWithArg<C, R> func)

Выполнение в потоке активного объекта с ожиданием завершения действия.

СИНХРОННЫЙ МЕТОД с ожиданием завершения выполнения. Если поток вызова метода совпадает с потоком активного объекта, анонимный метод будет выполнен синхронно, без использования очереди команд активного объекта.

Parameters:
  • func – исполняемый анонимный метод

  • <R> – Тип результата выполняемой функции

Throws:
  • ApplicationException – Если не удалось захвватить Listener актёра, или при выполнении возника ошибка.

Returns:

<R>

invokeFuncAsync

<R> Future<R> invokeFuncAsync(ForwardFunctionWithArg<C, R> func)

Асинхронное выполнение в потоке активного объекта без ожидания завершения действия.

Если поток вызова метода совпадает с потоком активного объекта, анонимный метод будет выполнен синхронно.

Parameters:
  • func – исполняемый анонимный метод

  • <R> – Тип результата выполняемой функции

Returns:

Future<R> - объект синхронизации с результатом выполнеия анонимного метода

invokeProc

void invokeProc(ForwardProcedureWithArg<C> proc, int timeout)

Выполнение в потоке активного объекта с таймаутом ожидания завершения действия.

СИНХРОННЫЙ МЕТОД с ожиданием завершения выполнения. Если поток вызова метода совпадает с потоком активного объекта, анонимный метод будет выполнен синхронно, без использования очереди команд активного объекта.

Parameters:
  • proc – исполняемый анонимный метод

  • timeout – таймаут, миллисекунды. Если ‘0’, ожидание будет до завершения асинхронного дейсвтия.

Throws:
  • ApplicationException – Если не удалось захвватить Listener актёра, или при выполнении возника ошибка.

invokeProc

void invokeProc(ForwardProcedureWithArg<C> proc)

Выполнение в потоке активного объекта с ожиданием завершения действия.

СИНХРОННЫЙ МЕТОД с ожиданием завершения выполнения. Если поток вызова метода совпадает с потоком активного объекта, анонимный метод будет выполнен синхронно, без использования очереди команд активного объекта.

Parameters:
  • proc – исполняемый анонимный метод

Throws:
  • ApplicationException – Если не удалось захвватить Listener актёра, или при выполнении возника ошибка.

invokeProcAsync

Future<Void> invokeProcAsync(ForwardProcedureWithArg<C> proc)

Асинхронное выполнение в потоке активного объекта без ожидания завершения действия.

Если поток вызова метода совпадает с потоком активного объекта, анонимный метод будет выполнен синхронно.

Parameters:
  • proc – исполняемый анонимный метод

Returns:

Future<R> - объект синхронизации с результатом выполнения анонимного метода

postProcAsync

Future<Void> postProcAsync(ForwardProcedureWithArg<C> proc)

Отправляет команду в поток активного объекта на выполнение, без ожидания завершения действия.

Отличие от методов invoke..: анонимный метод ВСЕГДА выполняется через очередь сообщений активного объекта.

Parameters:
  • proc – Анонимный метод

Returns:

Future<Object> - объект синхронизации с результатом выполнеия анонимного метода

postProcNoWait

void postProcNoWait(ForwardProcedureWithArg<C> proc)

Отправляет команду в поток активного объекта на выполнение, без ожидания завершения действия. При возникновении исключения, оно будет залогировано. Метод следует использовать, когда в точке вызова нет необходимости в обработке результата выполения.

Отличие от методов invoke..: анонимный метод ВСЕГДА выполняется через очередь сообщений активного объекта.

Parameters:
  • proc – Анонимный метод