Snapdragon® Telematics Application Framework (TelAF) Interface Specification
|
Data Structures | |
struct | _ClientThreadData_t |
Macros | |
#define | LOCK_INIT le_mutex_Lock(le_ifgen_InitMutexRef); |
Locks the mutex. More... | |
#define | UNLOCK_INIT le_mutex_Unlock(le_ifgen_InitMutexRef); |
Unlocks the mutex. More... | |
Variables | |
static le_mem_PoolRef_t | _ClientThreadDataPool |
static pthread_key_t | _ThreadDataKey |
static bool | CommonDataInitialized = false |
le_mutex_Ref_t | le_ifgen_InitMutexRef |
#define LOCK_INIT le_mutex_Lock(le_ifgen_InitMutexRef); |
Locks the mutex.
#define UNLOCK_INIT le_mutex_Unlock(le_ifgen_InitMutexRef); |
Unlocks the mutex.
LE_MEM_DEFINE_STATIC_POOL | ( | le_appCtrl_ClientThreadData | , |
LE_CDATA_COMPONENT_COUNT | , | ||
sizeof(_ClientThreadData_t) | |||
) |
Static pool for client threads.
|
static |
Initialize thread specific data, and connect to the service for the current thread.
|
static |
Get a pointer to the client thread data for the current thread.
If the current thread does not have client data, then NULL is returned
__attribute__ | ( | (unused) | ) |
[in] Not used
[in] Reference to the message.
Return the sessionRef for the current thread.
If the current thread does not have a session ref, then this is a fatal error.
Cleanup client data if the client is no longer connected
Send the message to the client (queued version)
This is a wrapper around le_msg_Send() with an extra parameter so that it can be used with le_event_QueueFunctionToThread().
Send the message to the client.
|
static |
Destructor function for client thread objects.
|
static |
Init data that is common across all threads.
|
static |
Connect to the service, using either blocking or non-blocking calls.
This function implements the details of the public ConnectService functions.
void le_appCtrl_ConnectService | ( | void | ) |
Connect the current client thread to the service providing this API. Block until the service is available.
For each thread that wants to use this API, either ConnectService or TryConnectService must be called before any other functions in this API. Normally, ConnectService is automatically called for the main thread, but not for any other thread. For details, see apiFilesC_client.
This function is created automatically.
le_result_t le_appCtrl_TryConnectService | ( | void | ) |
Try to connect the current client thread to the service providing this API. Return with an error if the service is not available.
For each thread that wants to use this API, either ConnectService or TryConnectService must be called before any other functions in this API. Normally, ConnectService is automatically called for the main thread, but not for any other thread. For details, see apiFilesC_client.
This function is created automatically.
|
static |
void le_appCtrl_SetServerDisconnectHandler | ( | le_appCtrl_DisconnectHandler_t | disconnectHandler, |
void * | contextPtr | ||
) |
Set handler called when server disconnection is detected.
When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants to continue without exiting, it should call longjmp() from inside the handler.
|
static |
void le_appCtrl_SetNonExitServerDisconnectHandler | ( | le_appCtrl_DisconnectHandler_t | disconnectHandler, |
void * | contextPtr | ||
) |
Set handler called when server disconnection is detected without exiting.
When a server connection is lost, call this handler without exit.
void le_appCtrl_DisconnectService | ( | void | ) |
Disconnect the current client thread from the service providing this API.
Normally, this function doesn't need to be called. After this function is called, there's no longer a connection to the service, and the functions in this API can't be used. For details, see apiFilesC_client.
This function is created automatically.
le_appCtrl_AppRef_t le_appCtrl_GetRef | ( | const char *LE_NONNULL | appName | ) |
Gets a reference to an app.
[in] | appName | Name of the app to get the ref for. |
void le_appCtrl_ReleaseRef | ( | le_appCtrl_AppRef_t | appRef | ) |
Release the reference to an app, resetting all overrides set for this app using other functions, like SetRun(), SetDevicePerm(), etc.
[in] | appRef | Ref to the app. |
void le_appCtrl_SetRun | ( | le_appCtrl_AppRef_t | appRef, |
const char *LE_NONNULL | procName, | ||
bool | run | ||
) |
Sets the run flag for a process in an app.
If there is an error this function will kill the calling client.
[in] | appRef | Ref to the app. |
[in] | procName | Process name to set the run flag for. |
[in] | run | Flag to run the process or not. |
void le_appCtrl_SetDebug | ( | le_appCtrl_AppRef_t | appRef, |
const char *LE_NONNULL | procName, | ||
bool | debug | ||
) |
Sets the debug flag for a process in an app.
If there is an error this function will kill the calling client.
[in] | appRef | Ref to the app. |
[in] | procName | Process name to set the run flag for. |
[in] | debug | Flag to debug the process or not. |
le_result_t le_appCtrl_Import | ( | le_appCtrl_AppRef_t | appRef, |
const char *LE_NONNULL | path | ||
) |
Imports a file into the app's working directory.
[in] | appRef | Ref to the app. |
[in] | path | Absolute path to the file to import. |
le_result_t le_appCtrl_SetDevicePerm | ( | le_appCtrl_AppRef_t | appRef, |
const char *LE_NONNULL | path, | ||
const char *LE_NONNULL | permissions | ||
) |
Sets a device file's permissions.
[in] | appRef | Ref to the app. |
[in] | path | Absolute path to the device. |
[in] | permissions | Permission string, "r", "w", "rw". |
le_appCtrl_TraceAttachHandlerRef_t le_appCtrl_AddTraceAttachHandler | ( | le_appCtrl_AppRef_t | appRef, |
le_appCtrl_TraceAttachHandlerFunc_t | attachToPidPtr, | ||
void * | contextPtr | ||
) |
Add handler function for EVENT 'le_appCtrl_TraceAttach'
Event that indicates the process is blocked and can be attached to.
[in] | appRef | Ref to the app. |
[in] | attachToPidPtr | Attach handler to register. |
[in] | contextPtr |
void le_appCtrl_RemoveTraceAttachHandler | ( | le_appCtrl_TraceAttachHandlerRef_t | handlerRef | ) |
Remove handler function for EVENT 'le_appCtrl_TraceAttach'
[in] | handlerRef |
void le_appCtrl_TraceUnblock | ( | le_appCtrl_AppRef_t | appRef, |
int32_t | pid | ||
) |
Unblocks the traced process. This should normally be done once the tracer has successfully attached to the process.
[in] | appRef | Ref to the app. |
[in] | pid | PID of the process to unblock. |
le_result_t le_appCtrl_Start | ( | const char *LE_NONNULL | appName | ) |
Starts an app.
[in] | appName | Name of the app to start. |
le_result_t le_appCtrl_Stop | ( | const char *LE_NONNULL | appName | ) |
Stops an app.
[in] | appName | Name of the app to stop. |
|
static |
The memory pool for client thread objects
|
static |
Key under which the pointer to the Thread Object (_ClientThreadData_t) will be kept in thread-local storage. This allows a thread to quickly get a pointer to its own Thread Object.
|
static |
This global flag is shared by all client threads, and is used to indicate whether the common data has been initialized.
le_mutex_Ref_t le_ifgen_InitMutexRef |
Mutex and associated macros for use with the above CommonDataInitialized.