Merge "Fix indentation and style issues in fmAPI"

This commit is contained in:
Zuul 2019-08-22 17:49:28 +00:00 committed by Gerrit Code Review
commit 7ff98a067f
2 changed files with 394 additions and 370 deletions

View File

@ -51,21 +51,26 @@ static bool m_connected = false;
static bool m_thread = false;
typedef std::list<fm_buff_t> FmRequestListT;
static FmRequestListT & GetListOfFmRequests() {
static FmRequestListT reqs;
return reqs;
}
static CFmMutex & getListMutex() {
static CFmMutex *m = new CFmMutex;
return *m;
}
static CFmMutex & getThreadMutex() {
static CFmMutex *m = new CFmMutex;
return *m;
}
CFmMutex & getAPIMutex() {
static pthread_mutex_t ml = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
static CFmMutex *m = NULL;
@ -77,16 +82,19 @@ CFmMutex & getAPIMutex(){
return *m;
}
static void enqueue(fm_buff_t &req) {
CFmMutexGuard m(getListMutex());
GetListOfFmRequests().push_back(req);
}
static bool dequeue(fm_buff_t &req) {
CFmMutexGuard m(getListMutex());
if (GetListOfFmRequests().size() == 0) {
return false;
}
FmRequestListT::iterator it = GetListOfFmRequests().begin();
req.clear();
req = (*it);
@ -94,6 +102,7 @@ static bool dequeue(fm_buff_t &req){
return true;
}
static bool fm_lib_reconnect() {
char addr[INET6_ADDRSTRLEN];
@ -140,6 +149,7 @@ static bool fm_lib_reconnect() {
return (m_connected);
}
EFmErrorT fm_msg_utils_prep_requet_msg(fm_buff_t &buff,
EFmMsgActionsT act,
const void * data,
@ -160,6 +170,7 @@ EFmErrorT fm_msg_utils_prep_requet_msg(fm_buff_t &buff,
return FM_ERR_OK;
}
static void fmApiJobHandlerThread(void *context) {
while (true) {
@ -181,8 +192,7 @@ static void fmApiJobHandlerThread(void *context){
fm_log_response(buff, in_buff, true);
m_connected = false;
continue;
}
else {
} else {
fm_log_response(buff, in_buff);
break;
}
@ -198,20 +208,21 @@ static void fmApiJobHandlerThread(void *context){
}
}
static bool fm_lib_thread() {
CFmMutexGuard m(getThreadMutex());
if (!m_thread) {
FM_INFO_LOG("Creating thread");
if (!fmCreateThread(fmApiJobHandlerThread, NULL)) {
FM_ERROR_LOG("Fail to create API job thread");
}
else {
} else {
m_thread = true;
}
}
return m_thread;
}
static EFmErrorT fm_check_thread_pending_request() {
CFmMutexGuard m(getThreadMutex());
if (m_thread) {
@ -233,6 +244,7 @@ EFmErrorT fm_init_lib() {
return FM_ERR_OK;
}
EFmErrorT fm_set_fault(const SFmAlarmDataT *alarm,
fm_uuid_t *uuid) {
@ -263,6 +275,7 @@ EFmErrorT fm_set_fault(const SFmAlarmDataT *alarm,
return FM_ERR_OK;
}
EFmErrorT fm_clear_fault(AlarmFilter *filter) {
CFmMutexGuard m(getAPIMutex());
@ -287,6 +300,7 @@ EFmErrorT fm_clear_fault(AlarmFilter *filter){
return FM_ERR_OK;
}
EFmErrorT fm_clear_all(fm_ent_inst_t *inst_id) {
CFmMutexGuard m(getAPIMutex());
@ -343,8 +357,10 @@ EFmErrorT fm_get_fault(AlarmFilter *filter, SFmAlarmDataT *alarm ){
return FM_ERR_OK;
}
EFmErrorT fm_get_faults(fm_ent_inst_t *inst_id,
SFmAlarmDataT *alarm, unsigned int *max_alarms_to_get) {
SFmAlarmDataT *alarm,
unsigned int *max_alarms_to_get) {
CFmMutexGuard m(getAPIMutex());
if (!fm_lib_reconnect()) return FM_ERR_NOCONNECT;
@ -396,7 +412,9 @@ EFmErrorT fm_get_faults(fm_ent_inst_t *inst_id,
return FM_ERR_OK;
}
EFmErrorT fm_get_faults_by_id(fm_alarm_id *alarm_id, SFmAlarmDataT *alarm,
EFmErrorT fm_get_faults_by_id(fm_alarm_id *alarm_id,
SFmAlarmDataT *alarm,
unsigned int *max_alarms_to_get) {
CFmMutexGuard m(getAPIMutex());
@ -449,6 +467,7 @@ EFmErrorT fm_get_faults_by_id(fm_alarm_id *alarm_id, SFmAlarmDataT *alarm,
return FM_ERR_OK;
}
/*
* APIs that enqueue the request and return ok for acknowledgment.
* A backgroup thread will pick up the request and send it to the FM Manager
@ -477,6 +496,7 @@ EFmErrorT fm_set_fault_async(const SFmAlarmDataT *alarm, fm_uuid_t *uuid){
return FM_ERR_OK;
}
EFmErrorT fm_clear_fault_async(AlarmFilter *filter) {
if ( !fm_lib_thread()) return FM_ERR_RESOURCE_UNAVAILABLE;
@ -495,6 +515,7 @@ EFmErrorT fm_clear_fault_async(AlarmFilter *filter){
return FM_ERR_OK;
}
EFmErrorT fm_clear_all_async(fm_ent_inst_t *inst_id) {
if ( !fm_lib_thread()) return FM_ERR_RESOURCE_UNAVAILABLE;

View File

@ -187,6 +187,9 @@ typedef struct {
}AlarmFilter;
/*
* APIs to create, clear and query alarms.
*/
EFmErrorT fm_set_fault(const SFmAlarmDataT *alarm, fm_uuid_t *uuid);
EFmErrorT fm_clear_fault(AlarmFilter *filter);