ha/service-mgmt/sm-1.0.0/src/sm_service_fsm.h

105 lines
4.4 KiB
C

//
// Copyright (c) 2014 Wind River Systems, Inc.
//
// SPDX-License-Identifier: Apache-2.0
//
#ifndef __SM_SERVICE_FSM_H__
#define __SM_SERVICE_FSM_H__
#include "sm_types.h"
#include "sm_service_table.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*SmServiceFsmCallbackT) (char service_name[],
SmServiceStateT state, SmServiceStatusT status,
SmServiceConditionT condition);
// ****************************************************************************
// Service FSM - Register Callback
// ===============================
extern SmErrorT sm_service_fsm_register_callback( SmServiceFsmCallbackT callback );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Deregister Callback
// =================================
extern SmErrorT sm_service_fsm_deregister_callback( SmServiceFsmCallbackT callback );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Set State
// =======================
extern SmErrorT sm_service_fsm_set_state( SmServiceT* service,
SmServiceStateT state );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Set Status
// ========================
extern SmErrorT sm_service_fsm_set_status( SmServiceT* service,
SmServiceStatusT status, SmServiceConditionT condition );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Event Handler
// ===========================
extern SmErrorT sm_service_fsm_event_handler( char service_name[],
SmServiceEventT event, void* event_data[], const char reason_text[] );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Action Complete Handler
// =====================================
extern SmErrorT sm_service_fsm_action_complete_handler( char service_name[],
SmServiceActionT action, SmServiceActionResultT action_result,
SmServiceStateT state, SmServiceStatusT status,
SmServiceConditionT condition, const char reason_text[] );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Start Fail Countdown Timer
// ========================================
extern SmErrorT sm_service_fsm_start_fail_countdown_timer( SmServiceT* service );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Stop Fail Countdown Timer
// =======================================
extern SmErrorT sm_service_fsm_stop_fail_countdown_timer( SmServiceT* service );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Process Failure Register
// ======================================
extern SmErrorT sm_service_fsm_process_failure_register(
SmServiceT* service );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Process Failure Deregister
// =======================================
extern SmErrorT sm_service_fsm_process_failure_deregister(
SmServiceT* service );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Initialize
// ========================
extern SmErrorT sm_service_fsm_initialize( void );
// ****************************************************************************
// ****************************************************************************
// Service FSM - Finalize
// ======================
extern SmErrorT sm_service_fsm_finalize( void );
// ****************************************************************************
#ifdef __cplusplus
}
#endif
#endif // __SM_SERVICE_FSM_H__