summaryrefslogtreecommitdiff
path: root/NodeStateAccess/NodeStateAccess.c
diff options
context:
space:
mode:
Diffstat (limited to 'NodeStateAccess/NodeStateAccess.c')
-rw-r--r--NodeStateAccess/NodeStateAccess.c1312
1 files changed, 0 insertions, 1312 deletions
diff --git a/NodeStateAccess/NodeStateAccess.c b/NodeStateAccess/NodeStateAccess.c
deleted file mode 100644
index c167247..0000000
--- a/NodeStateAccess/NodeStateAccess.c
+++ /dev/null
@@ -1,1312 +0,0 @@
-/**********************************************************************************************************************
-*
-* Copyright (C) 2012 Continental Automotive Systems, Inc.
-*
-* Author: Jean-Pierre.Bogler@continental-corporation.com
-*
-* Interface between NodeStateManager and IPC
-*
-* This source file is a part of the NodeStateAccess library (NSMA).
-* The architecture requires that the NodeStateManager (NSM) is independent from the D-Bus binding and code generated by
-* "gdbus-codegen". Therefore, the D-Bus communication and generated D-Bus objects are handled inside of this library.
-* The library offers the NSM an interface to use objects generated via gdbus-codgen.
-*
-* This Source Code Form is subject to the terms of the Mozilla Public
-* License, v. 2.0. If a copy of the MPL was not distributed with this
-* file, You can obtain one at http://mozilla.org/MPL/2.0/.
-*
-**********************************************************************************************************************/
-
-
-/**********************************************************************************************************************
-*
-* Header includes
-*
-**********************************************************************************************************************/
-
-/* generic includes for the NodeStateAccess library */
-#include "gio/gio.h" /* glib types */
-#include "NodeStateAccess.h" /* own header */
-#include "NodeStateTypes.h" /* Type defintions of the NSM */
-#include <glib-unix.h> /* Catch SIGTERM */
-
-/* additional includes to use D-Bus */
-#include "string.h" /* memcpy, memset, etc. */
-#include "NodeStateConsumer.h" /* generated NodeStateConsumer object */
-#include "NodeStateLifecycleControl.h" /* generated LifecycleControl object */
-#include "NodeStateLifecycleConsumer.h" /* generated LifecycleConsumer object */
-
-
-/**********************************************************************************************************************
-*
-* Local variables
-*
-**********************************************************************************************************************/
-
-/* Variables to handle main loop and bus connection */
-static GMainLoop *NSMA__pMainLoop = NULL;
-static GDBusConnection *NSMA__pBusConnection = NULL;
-static gboolean NSMA__boLoopEndByUser = FALSE;
-static guint NSMA__u32ConnectionId = 0;
-static gboolean NSMA__boInitialized = FALSE;
-
-/* Variables to handle life cycle client calls */
-static guint NSMA__u32TimerId = 0;
-static NodeStateLifeCycleConsumer *NSMA__pCurrentLcConsumer = NULL;
-
-/* Variables for D-Bus objects */
-static NodeStateConsumer *NSMA__pNodeStateConsumerObj = NULL;
-static NodeStateLifecycleControl *NSMA__pLifecycleControlObj = NULL;
-
-/* Structure with callback functions to the NSM */
-static NSMA_tstObjectCallbacks NSMA__stObjectCallbacks = {0};
-
-
-/**********************************************************************************************************************
-*
-* Prototypes for file local functions (see implementation for description)
-*
-**********************************************************************************************************************/
-
-/* Internal D-Bus callbacks */
-static gboolean NSMA__boOnHandleSetBootMode (NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32BootMode,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleSetNodeState (NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32NodeStateId,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleSetApplicationMode (NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32ApplicationModeId,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleRequestNodeRestart (NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32RestartReason,
- const guint i32RestartType,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleCheckLucRequired (NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleRegisterSession (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gchar *sSessionOwner,
- const gint i32SeatId,
- const gint i32SessionState,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleUnRegisterSession (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gchar *sSessionOwner,
- const gint i32SeatId,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleRegisterLifecycleClient (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar* sBusName,
- const gchar* sObjName,
- const guint u32ShutdownMode,
- const guint u32TimeoutMs,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleUnRegisterLifecycleClient(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar* sBusName,
- const gchar* sObjName,
- const guint u32ShutdownMode,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleLifecycleRequestComplete (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const guint u32RequestId,
- const gint i32Status,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleGetApplicationMode (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleGetSessionState (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gint i32SeatId,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleSetSessionState (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gchar *sSessionOwner,
- const gint i32SeatId,
- const gint i32SessionState,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleGetNodeState (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleSetAppHealthStatus (NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gchar *sAppName,
- const gboolean boAppState,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleGetAppHealthCount (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData);
-static gboolean NSMA__boOnHandleGetInterfaceVersion (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData);
-
-/* Internal bus connection callbacks */
-static void NSMA__vOnBusAcquired (GDBusConnection *pConnection, const gchar* sName, gpointer pUserData);
-static void NSMA__vOnNameAcquired(GDBusConnection *pConnection, const gchar* sName, gpointer pUserData);
-static void NSMA__vOnNameLost (GDBusConnection *pConnection, const gchar* sName, gpointer pUserData);
-
-/* Linux signal callback */
-static gboolean NSMA__boOnHandleSigterm(gpointer pUserData);
-
-/* Internal callback for async. life cycle client returns */
-static void NSMA__vOnLifecycleRequestFinish(GObject *pSrcObject, GAsyncResult *pRes, gpointer pUserData);
-
-
-/**********************************************************************************************************************
-*
-* Local (static) functions
-*
-**********************************************************************************************************************/
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when the "boot mode" should be set.
-*
-* @param pLifecycleControl: Pointer to a LifecycleControl object
-* @param pInvocation: Pointer to method invocation object
-* @param i32BootMode: New boot mode
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleSetBootMode(NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32BootMode,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfSetBootModeCb(i32BootMode);
-
- node_state_lifecycle_control_complete_set_boot_mode(pLifecycleControl, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when the "node state" should be set.
-*
-* @param pLifecycleControl: Pointer to a LifecycleControl object
-* @param pInvocation: Pointer to method invocation object
-* @param i32NodeStateId: New node state
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleSetNodeState(NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32NodeStateId,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfSetNodeStateCb((NsmNodeState_e) i32NodeStateId);
-
- node_state_lifecycle_control_complete_set_node_state(pLifecycleControl, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when the "application mode" should be set.
-*
-* @param pLifecycleControl: Pointer to a LifecycleControl object
-* @param pInvocation: Pointer to method invocation object
-* @param i32ApplicationModeId: New application mode
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleSetApplicationMode(NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32ApplicationModeId,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfSetAppModeCb((NsmApplicationMode_e) i32ApplicationModeId);
-
- node_state_lifecycle_control_complete_set_application_mode(pLifecycleControl, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when the node should be reset.
-*
-* @param pLifecycleControl: Pointer to a LifecycleControl object
-* @param pInvocation: Pointer to method invocation object
-* @param i32RestartReason: Restart reason
-* @param i32RestartType: Restart type
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleRequestNodeRestart(NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gint i32RestartReason,
- const guint u32RestartType,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfRequestNodeRestartCb((NsmRestartReason_e) i32RestartReason, u32RestartType);
-
- node_state_lifecycle_control_complete_request_node_restart(pLifecycleControl, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when a check for LUC is required.
-*
-* @param pLifecycleControl: Pointer to a LifecycleControl object
-* @param pInvocation: Pointer to method invocation object
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleCheckLucRequired(NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData)
-{
- gboolean boLucRequired = FALSE;
-
- boLucRequired = NSMA__stObjectCallbacks.pfCheckLucRequiredCb();
-
- node_state_lifecycle_control_complete_check_luc_required(pLifecycleControl, pInvocation, boLucRequired);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called when an application has become invalid or valid again.
-*
-* @param pLifecycleControl: Caller of the D-Bus interface
-* @param pInvocation: Pointer to the interface invocation
-* @param sAppName: Application which changed its state.
-* @param boAppState: Indicates whether the application has become invalid or valid again.
-* @param pUserData: Optionally user data (not used)
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleSetAppHealthStatus(NodeStateLifecycleControl *pLifecycleControl,
- GDBusMethodInvocation *pInvocation,
- const gchar *sAppName,
- const gboolean boAppState,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfSetAppHealthStatusCb(sAppName, boAppState);
-
- node_state_lifecycle_control_complete_set_app_health_status(pLifecycleControl, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when a new session should be registered.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to method invocation object
-* @param sSessionName: Name of the new session
-* @param i32SessionState: Initial state of the new session
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleRegisterSession(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gchar *sSessionOwner,
- const gint i32SeatId,
- const gint i32SessionState,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfRegisterSessionCb(sSessionName,
- sSessionOwner,
- (NsmSeat_e) i32SeatId,
- (NsmSessionState_e) i32SessionState);
-
- node_state_consumer_complete_register_session(pConsumer, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when a session should be unregistered.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to method invocation object
-* @param sSessionName: Name of the new session
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleUnRegisterSession (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gchar *sSessionOwner,
- const gint i32SeatId,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfUnRegisterSessionCb(sSessionName, sSessionOwner, (NsmSeat_e) i32SeatId);
-
- node_state_consumer_complete_un_register_session(pConsumer, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when a lifecycle client should be registered.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to method invocation object
-* @param sBusName: Bus name of the remote application that hosts the lifecycle client interface
-* @param sObjName: Object name of the lifecycle client
-* @param u32ShutdownMode: Shutdown mode for which the client wants to be informed
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleRegisterLifecycleClient (NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sBusName,
- const gchar *sObjName,
- const guint u32ShutdownMode,
- const guint u32TimeoutMs,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfRegisterLifecycleClientCb(sBusName,
- sObjName,
- u32ShutdownMode,
- u32TimeoutMs);
-
- node_state_consumer_complete_register_shutdown_client(pConsumer, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop, when a lifecycle client should be unregistered or a shutdown
-* mode should be removed.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to method invocation object
-* @param sBusName: Bus name of the remote application that hosts the lifecycle client interface
-* @param sObjName: Object name of the lifecycle client
-* @param u32ShutdownMode: Shutdown mode for which the client wants to unregister
-* @param pUserData: Optionally user data (not used)
-*
-* @return: TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleUnRegisterLifecycleClient(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sBusName,
- const gchar *sObjName,
- const guint u32ShutdownMode,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfUnRegisterLifecycleClientCb(sBusName, sObjName, u32ShutdownMode);
-
- node_state_consumer_complete_un_register_shutdown_client(pConsumer, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop when the application mode needs to be retrieved.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to a method invocation object
-* @param pUserData: Pointer to optional user data (not used)
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleGetApplicationMode(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
- NsmApplicationMode_e enApplicationMode = NsmApplicationMode_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfGetAppModeCb(&enApplicationMode);
-
- node_state_consumer_complete_get_application_mode(pConsumer,
- pInvocation,
- (gint) enApplicationMode,
- (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop a session state should be retrieved.
-*
-* @param pConsumer: Caller of the D-Bus interface
-* @param pInvocation: Pointer to the interface invocation
-* @param sSessionName: Name of the session whose state just be returned
-* @param sSessionName: Owner of the session whose state just be returned
-* @param i32SeatId: Seat of the session
-* @param i32SessionState: New state of the session
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleGetSessionState(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gint i32SeatId,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
- NsmSessionState_e enSessionState = NsmSessionState_Unregistered;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfGetSessionStateCb(sSessionName, (NsmSeat_e) i32SeatId, &enSessionState);
-
- node_state_consumer_complete_get_session_state(pConsumer, pInvocation, (gint) enSessionState, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop when a session state should be set.
-*
-* @param pConsumer: Caller of the D-Bus interface
-* @param pInvocation: Pointer to the interface invocation
-* @param sSessionName: Name of the session whose state just be set
-* @param i32SeatId: Seat of the session
-* @param i32SessionState: New state of the session
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleSetSessionState(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const gchar *sSessionName,
- const gchar *sSessionOwner,
- const gint i32SeatId,
- const gint i32SessionState,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfSetSessionStateCb(sSessionName,
- sSessionOwner,
- (NsmSeat_e) i32SeatId,
- (NsmSessionState_e) i32SessionState);
-
- node_state_consumer_complete_set_session_state(pConsumer, pInvocation, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop when the NodeState needs to be retrieved.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to a method invocation object
-* @param pUserData: Pointer to optional user data (not used)
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleGetNodeState(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
- NsmNodeState_e enNodeState = NsmNodeState_NotSet;
-
- enErrorStatus = NSMA__stObjectCallbacks.pfGetNodeStateCb(&enNodeState);
-
- node_state_consumer_complete_get_node_state(pConsumer, pInvocation, (gint) enNodeState, (gint) enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop when the AppHealthCount (number of failed applications) needs to
-* be retrieved.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to a method invocation object
-* @param pUserData: Pointer to optional user data (not used)
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleGetAppHealthCount(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData)
-{
- guint u32AppHealthCount = 0;
-
- u32AppHealthCount = NSMA__stObjectCallbacks.pfGetAppHealthCountCb();
-
- node_state_consumer_complete_get_app_health_count(pConsumer, pInvocation, u32AppHealthCount);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop when the interface version needs to be retrieved.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to a method invocation object
-* @param pUserData: Pointer to optional user data (not used)
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleGetInterfaceVersion(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- gpointer pUserData)
-{
- guint u32InterfaceVersion = 0;
-
- u32InterfaceVersion = NSMA__stObjectCallbacks.pfGetInterfaceVersionCb();
-
- node_state_consumer_complete_get_interface_version(pConsumer, pInvocation, u32InterfaceVersion);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called when a connection to the D-Bus could be established.
-*
-* @param pConnection: Connection, which was acquired
-* @param sName: Bus name
-* @param pUserData: Optionally user data
-*
-* @return void
-*
-**********************************************************************************************************************/
-static void NSMA__vOnBusAcquired(GDBusConnection *pConnection, const gchar* sName, gpointer pUserData)
-{
- /* Store the connection. Needed later, to create life cycle clients. */
- NSMA__pBusConnection = pConnection;
-
- /* Do not automatically exit the main loop when connection is lost.
- * The program terminates nevertheless, but will give useful traces.
- */
- g_dbus_connection_set_exit_on_close(NSMA__pBusConnection, FALSE);
-
- /* Register the callbacks */
- (void) g_signal_connect(NSMA__pLifecycleControlObj, "handle-set-boot-mode", G_CALLBACK(NSMA__boOnHandleSetBootMode), NULL);
- (void) g_signal_connect(NSMA__pLifecycleControlObj, "handle-set-node-state", G_CALLBACK(NSMA__boOnHandleSetNodeState), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-get-node-state", G_CALLBACK(NSMA__boOnHandleGetNodeState), NULL);
- (void) g_signal_connect(NSMA__pLifecycleControlObj, "handle-set-application-mode", G_CALLBACK(NSMA__boOnHandleSetApplicationMode), NULL);
- (void) g_signal_connect(NSMA__pLifecycleControlObj, "handle-request-node-restart", G_CALLBACK(NSMA__boOnHandleRequestNodeRestart), NULL);
- (void) g_signal_connect(NSMA__pLifecycleControlObj, "handle-check-luc-required", G_CALLBACK(NSMA__boOnHandleCheckLucRequired), NULL);
- (void) g_signal_connect(NSMA__pLifecycleControlObj, "handle-set-app-health-status", G_CALLBACK(NSMA__boOnHandleSetAppHealthStatus), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-register-session", G_CALLBACK(NSMA__boOnHandleRegisterSession), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-un-register-session", G_CALLBACK(NSMA__boOnHandleUnRegisterSession), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-register-shutdown-client", G_CALLBACK(NSMA__boOnHandleRegisterLifecycleClient), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-un-register-shutdown-client", G_CALLBACK(NSMA__boOnHandleUnRegisterLifecycleClient), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-get-application-mode", G_CALLBACK(NSMA__boOnHandleGetApplicationMode), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-get-session-state", G_CALLBACK(NSMA__boOnHandleGetSessionState), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-set-session-state", G_CALLBACK(NSMA__boOnHandleSetSessionState), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-get-app-health-count", G_CALLBACK(NSMA__boOnHandleGetAppHealthCount), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-get-interface-version", G_CALLBACK(NSMA__boOnHandleGetInterfaceVersion), NULL);
- (void) g_signal_connect(NSMA__pNodeStateConsumerObj, "handle-lifecycle-request-complete", G_CALLBACK(NSMA__boOnHandleLifecycleRequestComplete), NULL);
-
- /* Export the interfaces */
- if(g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(NSMA__pNodeStateConsumerObj),
- NSMA__pBusConnection,
- NSM_CONSUMER_OBJECT,
- NULL) == TRUE)
- {
- if(g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(NSMA__pLifecycleControlObj),
- NSMA__pBusConnection,
- NSM_LIFECYCLE_OBJECT,
- NULL) != TRUE)
- {
- /* Error: The LifecycleControl interface could not be exported */
- NSMA__boLoopEndByUser = FALSE;
- g_main_loop_quit(NSMA__pMainLoop);
- }
- }
- else
- {
- /* Error: The NodeStateConsumer interface could not be exported */
- NSMA__boLoopEndByUser = FALSE;
- g_main_loop_quit(NSMA__pMainLoop);
- }
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called when the "bus name" could be acquired on the D-Bus.
-*
-* @param pConnection: Connection over which the bus name was acquired
-* @param sName: Acquired bus name
-* @param pUserData: Optionally user data
-*
-* @return void
-*
-**********************************************************************************************************************/
-static void NSMA__vOnNameAcquired(GDBusConnection *pConnection, const gchar* sName, gpointer pUserData)
-{
- /* There is nothing to do in this function, it is only need as callback function. */
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called if either no connection to D-Bus could be established or the bus name could not be acquired.
-*
-* @param pConnection: Connection. If it is NULL, no D-Bus connection could be established.
-* Otherwise the bus name was lost.
-* @param sName: Bus name
-* @param pUserData: Optionally user data
-*
-* @return void
-*
-**********************************************************************************************************************/
-static void NSMA__vOnNameLost(GDBusConnection *pConnection, const gchar* sName, gpointer pUserData)
-{
- /* If this function was called, either the bus connection could not be established or the bus name could
- * not be obtained. In both cases, stop the main loop.
- */
-
- NSMA__boLoopEndByUser = FALSE;
- g_main_loop_quit(NSMA__pMainLoop);
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called when the async. call to a life cycle clients "LifecycleRequest" method timed out.
-*
-* @param pUserData: Optionally user data (not used)
-*
-* @return FALSE: Tell the loop to detach and destroy the time out source.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boHandleRequestTimeout(gpointer pUserData)
-{
- NSMA__pCurrentLcConsumer = NULL;
- NSMA__stObjectCallbacks.pfLcClientRequestFinish(NsmErrorStatus_Error);
-
- return FALSE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called when the async. call to a life cycle clients "LifecycleRequest" method delivered a value.
-* If the returned error code is not "NsmErrorStatus_ResponsePending", the error code will be forwarded to the NSM.
-* Otherwise, a timer will be started and the life cycle client will get another "default timeout" time, to call
-* the completion function "NSMA__boOnHandleLifecycleRequestComplete".
-*
-* @param pSrcObject: Source object that delivered the async. value
-* @param pRes: Result of the call.
-* @param pUserData: Optionally user data (not used).
-*
-**********************************************************************************************************************/
-static void NSMA__vOnLifecycleRequestFinish(GObject *pSrcObject, GAsyncResult *pRes, gpointer pUserData)
-{
- /* Function local variables. */
- NsmErrorStatus_e enErrorCode = NsmErrorStatus_NotSet; /* Error returned by lifecycle client */
- guint u32Timeout = 0;
-
- /* Pass proxy object and async. result to get the return value of the lifecycle client's method and D-Bus errors. */
-
- /* Check if a D-Bus error occurred */
- if(node_state_life_cycle_consumer_call_lifecycle_request_finish(NODE_STATE_LIFE_CYCLE_CONSUMER(pSrcObject),
- (gint*) &enErrorCode,
- pRes,
- NULL) == TRUE)
- {
- /* The returned value could be read, check it! */
- if(enErrorCode == NsmErrorStatus_ResponsePending)
- {
- /* The client returned response pending. Start timer to wait for final result. */
- u32Timeout = g_dbus_proxy_get_default_timeout(G_DBUS_PROXY(pSrcObject));
- NSMA__u32TimerId = g_timeout_add_full(G_PRIORITY_DEFAULT, u32Timeout, &NSMA__boHandleRequestTimeout, NULL, NULL);
- }
- else
- {
- /* The client returned a final value. Pass it to the NSM */
- NSMA__pCurrentLcConsumer = NULL;
- NSMA__stObjectCallbacks.pfLcClientRequestFinish(enErrorCode);
- }
- }
- else
- {
- /* The clients return value could not be read. Pass an error to the NSM. */
- NSMA__pCurrentLcConsumer = NULL;
- NSMA__stObjectCallbacks.pfLcClientRequestFinish(NsmErrorStatus_Dbus);
- }
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called from the g_main_loop when a life cycle client finished an "asynchronous" life cycle request.
-*
-* @param pConsumer: Pointer to a NodeStateConsumer object
-* @param pInvocation: Pointer to a method invocation object
-* @param u32RequestId: Request ID that has been passed to client when calling his LifecycleRequest method
-* @param i32Status: Status/Return value of the client.
-*
-* @return TRUE: Tell D-Bus that method succeeded.
-* FALSE: Let D-Bus send an error.
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleLifecycleRequestComplete(NodeStateConsumer *pConsumer,
- GDBusMethodInvocation *pInvocation,
- const guint u32RequestId,
- const gint i32Status,
- gpointer pUserData)
-{
- NsmErrorStatus_e enErrorStatus = NsmErrorStatus_NotSet;
-
- /* Check if the client is the one, we are waiting for. */
- if(NSMA__pCurrentLcConsumer == (NodeStateLifeCycleConsumer*) u32RequestId)
- {
- enErrorStatus = NsmErrorStatus_Ok;
- /* The client is the expected one. Pass the status to the NSM. */
- NSMA__stObjectCallbacks.pfLcClientRequestFinish((NsmErrorStatus_e) i32Status);
-
- /* Remove the timeout timer (the expected client returned) */
- g_source_remove(NSMA__u32TimerId);
- }
- else
- {
- enErrorStatus = NsmErrorStatus_Error;
- }
-
- node_state_consumer_complete_lifecycle_request_complete(pConsumer, pInvocation, enErrorStatus);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* The function is called when the SIGTERM signal is received
-*
-* @param pUserData: Optional user data (not used)
-* @return TRUE: Keep callback installed
-*
-**********************************************************************************************************************/
-static gboolean NSMA__boOnHandleSigterm(gpointer pUserData)
-{
- NSMA__boLoopEndByUser = TRUE;
- g_main_loop_quit(NSMA__pMainLoop);
-
- return TRUE;
-}
-
-
-/**********************************************************************************************************************
-*
-* Interfaces. Exported functions. See Header for detailed description.
-*
-**********************************************************************************************************************/
-
-gboolean NSMA_boInit(const NSMA_tstObjectCallbacks *pstCallbacks)
-{
- /* Initialize glib types */
- g_type_init();
-
- /* Initialize file local variables */
- NSMA__pMainLoop = NULL;
- NSMA__pBusConnection = NULL;
- NSMA__u32ConnectionId = 0;
- NSMA__boLoopEndByUser = FALSE;
- NSMA__boInitialized = FALSE;
-
- NSMA__pCurrentLcConsumer = NULL;
-
- NSMA__pLifecycleControlObj = NULL;
- NSMA__pNodeStateConsumerObj = NULL;
-
- memset(&NSMA__stObjectCallbacks, 0, sizeof(NSMA_tstObjectCallbacks));
-
- /* Check if all callbacks for the NSM have been configured. */
- if( (pstCallbacks->pfSetBootModeCb != NULL)
- && (pstCallbacks->pfSetNodeStateCb != NULL)
- && (pstCallbacks->pfSetAppModeCb != NULL)
- && (pstCallbacks->pfRequestNodeRestartCb != NULL)
- && (pstCallbacks->pfSetAppHealthStatusCb != NULL)
- && (pstCallbacks->pfCheckLucRequiredCb != NULL)
- && (pstCallbacks->pfRegisterSessionCb != NULL)
- && (pstCallbacks->pfUnRegisterSessionCb != NULL)
- && (pstCallbacks->pfRegisterLifecycleClientCb != NULL)
- && (pstCallbacks->pfUnRegisterLifecycleClientCb != NULL)
- && (pstCallbacks->pfGetAppModeCb != NULL)
- && (pstCallbacks->pfGetSessionStateCb != NULL)
- && (pstCallbacks->pfGetNodeStateCb != NULL)
- && (pstCallbacks->pfSetNodeStateCb != NULL)
- && (pstCallbacks->pfSetSessionStateCb != NULL)
- && (pstCallbacks->pfGetAppHealthCountCb != NULL)
- && (pstCallbacks->pfGetInterfaceVersionCb != NULL)
- && (pstCallbacks->pfLcClientRequestFinish != NULL))
- {
- /* All callbacks are configured. */
- NSMA__boInitialized = TRUE;
-
- /* Store the passed callbacks. */
- memcpy(&NSMA__stObjectCallbacks, pstCallbacks, sizeof(NSMA_tstObjectCallbacks));
-
- /* Create a new main loop */
- NSMA__pMainLoop = g_main_loop_new(NULL, FALSE);
-
- /* Create D-Bus skeleton objects */
- NSMA__pNodeStateConsumerObj = node_state_consumer_skeleton_new();
- NSMA__pLifecycleControlObj = node_state_lifecycle_control_skeleton_new();
- }
- else
- {
- /* Error: Callbacks are configured incorrectly. */
- NSMA__boInitialized = FALSE;
- }
-
- return NSMA__boInitialized;
-}
-
-
-gboolean NSMA_boWaitForEvents(void)
-{
- /* Check if the library has been initialized (objects and callbacks are available) */
- if(NSMA__boInitialized == TRUE)
- {
- /* Start D-Bus connection sequence */
- NSMA__u32ConnectionId = g_bus_own_name((GBusType) NSM_BUS_TYPE,
- NSM_BUS_NAME,
- G_BUS_NAME_OWNER_FLAGS_NONE,
- &NSMA__vOnBusAcquired,
- &NSMA__vOnNameAcquired,
- &NSMA__vOnNameLost,
- NULL,
- NULL);
-
- /* Add source to catch SIGTERM signal (#15) */
- g_unix_signal_add(15, &NSMA__boOnHandleSigterm, NULL);
-
- /* Run main loop to get D-Bus connection and export objects. The function will only return,
- * if there was an internal error or it has been cancelled by the user.
- */
- g_main_loop_run(NSMA__pMainLoop);
- }
- else
- {
- /* Error: The library has not been initialized. Callbacks and objects are invalid. */
- NSMA__boLoopEndByUser = FALSE;
- }
-
- /* Return if function has been cancelled by user (TRUE) or because of an error (FALSE) */
- return NSMA__boLoopEndByUser;
-}
-
-
-gboolean NSMA_boSendNodeStateSignal(const NsmNodeState_e enNodeState)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Send the signal */
- node_state_consumer_emit_node_state(NSMA__pNodeStateConsumerObj, (gint) enNodeState);
- }
- else
- {
- /* Error: Library not initialized (objects are invalid) */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boSendSessionSignal(const NsmSession_s *pstSession)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Send the signal */
- node_state_consumer_emit_session_state_changed(NSMA__pNodeStateConsumerObj,
- pstSession->sName,
- (gint) pstSession->enSeat,
- (gint) pstSession->enState);
- }
- else
- {
- /* Error: Library not initialized (objects are invalid) */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boSendApplicationModeSignal(const NsmApplicationMode_e enApplicationMode)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Send the signal */
- node_state_consumer_emit_node_application_mode(NSMA__pNodeStateConsumerObj, (gint) enApplicationMode);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boSetBootMode(gint i32BootMode)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Set the properties value */
- node_state_consumer_set_boot_mode(NSMA__pNodeStateConsumerObj, i32BootMode);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boGetBootMode(gint *pi32BootMode)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Get the properties value */
- *pi32BootMode = node_state_consumer_get_boot_mode(NSMA__pNodeStateConsumerObj);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boSetRunningReason(const NsmRunningReason_e enRunningReason)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Set the properties value */
- node_state_consumer_set_wake_up_reason(NSMA__pNodeStateConsumerObj, (gint) enRunningReason);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boGetRunningReason(NsmRunningReason_e *penRunningReason)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Get the properties value */
- *penRunningReason = (NsmRunningReason_e) node_state_consumer_get_wake_up_reason(NSMA__pNodeStateConsumerObj);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boSetShutdownReason(const NsmShutdownReason_e enShutdownReason)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Set the properties value */
- node_state_consumer_set_shutdown_reason(NSMA__pNodeStateConsumerObj, (gint) enShutdownReason);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boGetShutdownReason(NsmShutdownReason_e *penShutdownReason)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Get the properties value */
- *penShutdownReason = (NsmShutdownReason_e) node_state_consumer_get_shutdown_reason(NSMA__pNodeStateConsumerObj);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boSetRestartReason(const NsmRestartReason_e enRestartReason)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Set the properties value */
- node_state_consumer_set_restart_reason(NSMA__pNodeStateConsumerObj, (gint) enRestartReason);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boGetRestartReason(NsmRestartReason_e *penRestartReason)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- boRetVal = TRUE; /* Get the properties value */
- *penRestartReason = (NsmRestartReason_e) node_state_consumer_get_restart_reason(NSMA__pNodeStateConsumerObj);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boQuitEventLoop(void)
-{
- gboolean boRetVal = FALSE;
-
- /* Check if the library has been initialized (objects are available) */
- if(NSMA__boInitialized == TRUE)
- {
- NSMA__boLoopEndByUser = TRUE;
- g_main_loop_quit(NSMA__pMainLoop);
- }
- else
- {
- /* Error: Library not initialized. Objects are invalid. */
- boRetVal = FALSE;
- }
-
- return boRetVal;
-}
-
-
-gboolean NSMA_boFreeLcConsumerProxy(NSMA_tLcConsumerHandle hLcConsumer)
-{
- g_object_unref(hLcConsumer);
-
- return TRUE;
-}
-
-
-NSMA_tLcConsumerHandle NSMA_hCreateLcConsumer(const gchar* sBusName,
- const gchar* sObjName,
- const guint u32TimeoutMs)
-{
- NodeStateLifeCycleConsumer *pConsumerProxy = NULL;
-
- pConsumerProxy = node_state_life_cycle_consumer_proxy_new_sync(NSMA__pBusConnection,
- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES
- | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
- sBusName,
- sObjName,
- NULL,
- NULL);
-
- if(pConsumerProxy != NULL)
- {
- g_dbus_proxy_set_default_timeout(G_DBUS_PROXY(pConsumerProxy), u32TimeoutMs);
- }
-
- return (NSMA_tLcConsumerHandle) pConsumerProxy;
-}
-
-
-
-gboolean NSMA_boCallLcClientRequest(NSMA_tLcConsumerHandle hLcClient,
- guint u32ShutdownType)
-{
-
- NSMA__pCurrentLcConsumer = (NodeStateLifeCycleConsumer*) hLcClient;
-
- node_state_life_cycle_consumer_call_lifecycle_request(NSMA__pCurrentLcConsumer,
- u32ShutdownType,
- (guint) NSMA__pCurrentLcConsumer,
- NULL,
- &NSMA__vOnLifecycleRequestFinish,
- NULL);
- return TRUE;
-}
-
-
-gboolean NSMA_boSetLcClientTimeout(NSMA_tLcConsumerHandle hClient, guint u32TimeoutMs)
-{
- g_dbus_proxy_set_default_timeout(G_DBUS_PROXY(hClient), u32TimeoutMs);
-
- return TRUE;
-}
-
-
-gboolean NSMA_boGetLcClientTimeout(NSMA_tLcConsumerHandle hClient, guint *pu32TimeoutMs)
-{
- *pu32TimeoutMs = g_dbus_proxy_get_default_timeout(G_DBUS_PROXY(hClient));
-
- return TRUE;
-}
-
-
-gboolean NSMA_boDeInit(void)
-{
- NSMA__boInitialized = FALSE;
-
- g_bus_unown_name(NSMA__u32ConnectionId);
- g_main_loop_unref(NSMA__pMainLoop);
-
- /* Release the (created) skeleton objects */
- if(NSMA__pNodeStateConsumerObj != NULL)
- {
- g_object_unref(NSMA__pNodeStateConsumerObj);
- }
-
- if(NSMA__pLifecycleControlObj != NULL)
- {
- g_object_unref(NSMA__pLifecycleControlObj);
- }
-
- return TRUE;
-}