/********************************************************************* *Copyright(c) 2018,国电南瑞科技股份公司 *All rights reserved. * *Filename: proc_define.h *Modulename: libproc_common.so *Description: 定义容器组和容器相关的常量和结构 *Author: guwenjie *Date Version Description of modification ==================================================================== *2018/11/12 1.0 Create ********************************************************************/ #ifndef _PROCESS_DEFINE_H_ #define _PROCESS_DEFINE_H_ #include "scn_define.h" #include namespace NS_SYSADMIN { const int c_max_proc_num=2048; #ifndef _WINDOWS64 const int c_proc_sem_key=0x1050; const int c_proc_shm_key=0x1050; #else const char c_proc_shm_key[]="PROCESS_MAN_SHM"; const char c_proc_sem_key[]="PROCESS_MAN_SEM"; #endif struct ProcRegisterType { enum { ShmType=1, ServerType=2 }; }; struct ProcStatusType { enum { Offline=0, Starting=1, Running=2, Hangup=3, Stopping=4, Failure=5, Stopped=6, Killed=7, Exited=8 }; }; struct ProcMonitorType { enum { PROC_TYPE_UNRPT = 0, PROC_TYPE_RPT =1 }; }; struct ProcManLimit { enum { COUNT_LIMIT = 2, DEFAULT_PERIOD = 3, START_DEFAULT_PERIOD = 5, START_COUNT_LIMIT = 5, FAILOVER_INTERVAL = 300, APP_COUNT_LIMIT = 1 }; }; struct CriticalType { enum { General=0, Crucial=1 }; }; struct ProcType { enum { HostProc=0, ConProc=1, ScnConProc=2 }; }; struct OS_TYPE { enum { ROCKY = 0, CENTOS = 1 }; }; struct CRUCIAL_TYPE { enum { GENERAL = 0, CRUCIAL = 1 }; }; struct ProcessInfo { int m_process_id; char m_process_name[Length:: NameLen]; char m_cmd[Length::SentenceLen]; char m_script[Length::SentenceLen]; char m_namespace[Length::StringLen]; int m_scn_id; char m_scn_name[SCN_MAX_NAME_LEN]; int m_scn_inst; char m_scn_label[Length::StringLen]; int m_subscn_id; char m_subscn_name[SCN_MAX_NAME_LEN]; int m_subscn_inst; char m_subscn_label[Length::StringLen]; char m_owner[Length:: NameLen]; long m_container_id; long m_cluster_id; int m_task_id; int m_member_no; int m_context_id; int m_app_id; char m_node_name[Length::NameLen]; int m_system_id; long m_resUnitId; unsigned char m_critical_type; unsigned char m_run_status; float m_cpu_occupy; int m_mem_occupy; time_t m_init_time; time_t m_start_time; time_t m_refresh_time; time_t m_change_time; time_t m_end_time; unsigned char m_monitor_type; int m_start_num; int m_noactive_num; int m_pos; int m_check; //long m_reserve; int m_refresh_period; int m_reserve; public: bool scn_match(int scn_id,int scn_inst,int subscn_id,int subscn_inst) { if(m_scn_id == scn_id && m_scn_inst == scn_inst && m_subscn_id == subscn_id && m_subscn_inst == subscn_inst) { return true; } return false; } bool scn_match(const char* scn_name,int scn_inst,const char* subscn_name,int subscn_inst) { if((strcmp(m_scn_name,scn_name) == 0) && m_scn_inst == scn_inst && (strcmp(m_subscn_name,subscn_name)==0) && m_subscn_inst == subscn_inst) { return true; } return false; } }; } #endif