ConnectWorkItem¶
-
class
kanzi::connect::ConnectWorkItem¶ Base class for work items that are passed through the workitem queue.
Subclassed by ConnectionManagerWorkItem, VirtualFileWorkItem
Public Types
-
enum
ExecutionContext¶ How to execute the work item.
Values:
-
enumerator
RUN_IN_MAIN_THREAD¶
-
enumerator
RUN_IN_WORKER_THREAD¶
-
enumerator
-
typedef function<void(void)>
Executor¶ Callback function that is dispatched to work queue and is used to execute work.
-
enum
Priority¶ Priority levels for the work items.
Values:
-
enumerator
LowPriority¶ The lowest three are subject to fairness, that is, in certain situations lower priority items are processed even if Lowest priority for work items - gets processed last.
-
enumerator
NormalPriority¶ Normal/Default priority for work items.
-
enumerator
HighPriority¶ Highest priority for common work items. Gets processed first.
-
enumerator
SystemPriority¶ Highest priority for work items.
Gets processed first regardless of fairness.
-
enumerator
Public Functions
-
ConnectWorkItem(int32_t type = Base, int32_t priority = NormalPriority, ExecutionContext executionContext = ExecutionContext::RUN_IN_MAIN_THREAD)¶ Constructor.
- Parameters
type – Type of the work item.
priority – Priority of the work item.
executionContext – In which thread to execute the work item
-
virtual
~ConnectWorkItem()¶ virtual destructor for cleanup.
-
bool
deadlineIsEarlierThan(const ConnectWorkItem &workItem) const¶ Checks whether this object(s) deadline is earlier than with the “other” item.
- Parameters
workItem – the other time
- Returns
true if this object triggers earlier than the other item.
-
ConnectWorkItem::Executor
getExecutor() const¶ Retrieve the executor function.
- Returns
executor to handle the call.
-
int32_t
getPriority() const¶ retrieve the work item priority
- Returns
numeric priority value.
-
AbstractServiceSharedPtr
getTargetService()¶ retrieve the service this work item is traveling to.
- Returns
service pointer.
-
int32_t
getType() const¶ retrieve the work item type identifier
- Returns
numeric identifier
-
int64_t
handle() const¶ Returns the handle associated with the object.
Handle is available only with timed objects.
- Returns
handle. 0 if not defined.
-
bool
hasExecutor() const¶ Does the object have custom executor.
- Returns
true if executor exists.
-
bool
hasTimeout() const¶ determines whether object defines a timeout
- Returns
true if timeout is defined.
-
bool
invokeWithExecutor()¶ Dispatches the object with executor.
This function is single shot type and will clear the executor instance once complete.
- Returns
true if executor was defined and got invoked.
-
bool
runInWorkerThread() const¶ Should this work item be run in worker thread or main thread.
- Returns
True if worker thread
-
void
setExecutor(ConnectWorkItem::Executor executorFunction)¶ Setups an executor function to execute the work item.
Function can be created with std::bind.
- Parameters
executorFunction – function to be called when it is time to handle the functionality.
setups the target service
- Parameters
service –
-
void
setTimeout(chrono::milliseconds timeout, int64_t handle)¶ Sets the timeout for the work item.
Timeout means this object will delay first specified amount of milliseconds and will then be delivered.
- Parameters
timeout – timeout in milliseconds to delay the delivery.
handle – unique handle that can be used to refer to object later on.
-
chrono::milliseconds
timeoutUntilDeadline() const¶ returns the timeout in milliseconds until this object time(s) out.
- Returns
the timeout in milliseconds.
-
chrono::milliseconds
timeoutUntilDeadline(chrono::time_point<chrono::steady_clock> &now) const¶ returns the timeout in milliseconds until this object time(s) out.
- Parameters
now – current timestamp if any.
- Returns
timeout in milliseconds.
Public Static Functions
-
static ConnectWorkItemSharedPtr
create(ExecutionContext executionContext = ExecutionContext::RUN_IN_MAIN_THREAD)¶ Creates a default instance of the work item.
- Parameters
executionContext – Defines if the work item is to be run in main or worker thread
- Returns
newly allocated instance.
-
enum