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 – Анонимный метод