... | ... | @@ -3,38 +3,38 @@ EMS(element management system)란 하나의 장비를 관리하는 시스템이 |
|
|
### 가) IRIS3 element를 구성하는 클래스 구조
|
|
|
<img src="Element_Image/elementClass1.png" width="200">
|
|
|
|
|
|
Element* m_pParent : 상위 element를 저장한다(노드일 경우 그룹의 주소를 저장)
|
|
|
CString m_strName : 노드명, Net명
|
|
|
Int m_state : 해당 장비를 EMS에서 관찰 할 것인가 아닌가를 나타낸다
|
|
|
Int m_nID : IRIS3_ELEM_xx 테이블의 ID 필드, release\config.dbs 파일의 IRIS_NODE의 ID 필드를 나타낸다
|
|
|
Int m_nMgrID : Manager ID 사용하지 않는다
|
|
|
BOOL m_bUsable : 망구성과 관계 없이 UI에서 표현만 하고 싶은 element를 구분할 때 사용된다
|
|
|
Int m_sortKey : Tree 등의 구조에서 정렬을 위해 사용된다
|
|
|
**Element\* m_pParent :** 상위 element를 저장한다(노드일 경우 그룹의 주소를 저장)
|
|
|
**CString m_strName :** 노드명, Net명
|
|
|
**Int m_state :** 해당 장비를 EMS에서 관찰 할 것인가 아닌가를 나타낸다
|
|
|
**Int m_nID :** IRIS3_ELEM_xx 테이블의 ID 필드, release\config.dbs 파일의 IRIS_NODE의 ID 필드를 나타낸다
|
|
|
**Int m_nMgrID :** Manager ID 사용하지 않는다
|
|
|
**BOOL m_bUsable :** 망구성과 관계 없이 UI에서 표현만 하고 싶은 element를 구분할 때 사용된다
|
|
|
**Int m_sortKey :** Tree 등의 구조에서 정렬을 위해 사용된다
|
|
|
|
|
|
<img src="Element_Image/elementClass2.png" width="500">
|
|
|
BOOL m_bAutoNode : ATOM 프로젝트에서 MS는 True이고 ES False이다
|
|
|
unsinged int m_neType : 역할에 따른 구분(LEDINFO 참조), ATOM 프로젝트에서 COT, RT1, RT2 에 따라서 neType이 구분된다(IRIS3_NETYPE_ATOM_COT)
|
|
|
unsinged int m_nodeTypeID : 형상에 따른 구분(irisp code 참조)( IRIS3_NODETYPEID_ATOM_RT2)
|
|
|
unsigned int m_sysId : signal, cot, ring, netype으로 만들어내는 ID
|
|
|
ElementNode* m_pGateway : 노드의 Gateway 포인터를 저장하고 있는 멤버 변수, Gateway 노드는 NULL값을 가지고 있다
|
|
|
CString m_strTId : void ElementNode::SetStatus(struct NODE_STATUS* pLedInfo, int size) 함수에서 LedInfo를 받으면 pLedFunSet->get_tid로 받아온 값이 저장
|
|
|
ULONG m_nodeIP : 사용자가 입력하는 노드 IP
|
|
|
struct meta_addr m_metaAddr : CreateMetaAddr2()로 생성한 meta 주소값, Iris3elem_Init() 수행 후, Iris3elem_AddElementCreator() 인터페이스를 이욯아여 meta 주소값을 만들어 내는 콜백함수 등록
|
|
|
**BOOL m_bAutoNode :** ATOM 프로젝트에서 MS는 True이고 ES False이다
|
|
|
**unsinged int m_neType :** 역할에 따른 구분(LEDINFO 참조), ATOM 프로젝트에서 COT, RT1, RT2 에 따라서 neType이 구분된다(IRIS3_NETYPE_ATOM_COT)
|
|
|
**unsinged int m_nodeTypeID :** 형상에 따른 구분(irisp code 참조)( IRIS3_NODETYPEID_ATOM_RT2)
|
|
|
**unsigned int m_sysId :** signal, cot, ring, netype으로 만들어내는 ID
|
|
|
**ElementNode\* m_pGateway :** 노드의 Gateway 포인터를 저장하고 있는 멤버 변수, Gateway 노드는 NULL값을 가지고 있다
|
|
|
**CString m_strTId :** void ElementNode::SetStatus(struct NODE_STATUS\* pLedInfo, int size) 함수에서 LedInfo를 받으면 pLedFunSet->get_tid로 받아온 값이 저장
|
|
|
**ULONG m_nodeIP :** 사용자가 입력하는 노드 IP
|
|
|
**struct meta_addr m_metaAddr :** CreateMetaAddr2()로 생성한 meta 주소값, Iris3elem_Init() 수행 후, Iris3elem_AddElementCreator() 인터페이스를 이욯아여 meta 주소값을 만들어 내는 콜백함수 등록
|
|
|
|
|
|
<img src="Element_Image/elementClass3.png" width="500">
|
|
|
Element : 노드, 망, 그룹을 공통적으로 표현하기 위한 추상 클래스로 노드와 망에서 구현되어야 할 인터페이스가 정의 되어 있다
|
|
|
ElementComposite : 노드, 그룹, 망의 포함관계를 표현할 수 있는 클래스. 멤버변수 m_vecItem에 그룹내의 노드가 포함되어 있고 노드의 추가/ 삭제 /검색 인터페이스가 정의되어 있다
|
|
|
ElementNode : neType, shelf Type 등 노드정보를 표현하는 클래스
|
|
|
ElementNet : 링크 정보, 망 타입 등 망정보를 표현하는 클래스
|
|
|
ElementNetGroup : 망 개념이 없는 그룹용 클래스
|
|
|
ElementFactory : 노드와 그룹객체를 생성해내는 팩토리클래스
|
|
|
ElementSearcher : 노드 및 망을 검색하는 기능을 제공하는 클래스
|
|
|
**Element :** 노드, 망, 그룹을 공통적으로 표현하기 위한 추상 클래스로 노드와 망에서 구현되어야 할 인터페이스가 정의 되어 있다
|
|
|
**ElementComposite :** 노드, 그룹, 망의 포함관계를 표현할 수 있는 클래스. 멤버변수 m_vecItem에 그룹내의 노드가 포함되어 있고 노드의 추가/ 삭제 /검색 인터페이스가 정의되어 있다
|
|
|
**ElementNode :** neType, shelf Type 등 노드정보를 표현하는 클래스
|
|
|
**ElementNet :** 링크 정보, 망 타입 등 망정보를 표현하는 클래스
|
|
|
**ElementNetGroup :** 망 개념이 없는 그룹용 클래스
|
|
|
**ElementFactory :** 노드와 그룹객체를 생성해내는 팩토리클래스
|
|
|
**ElementSearcher :** 노드 및 망을 검색하는 기능을 제공하는 클래스
|
|
|
|
|
|
<img src="Element_Image/elementClass4.png" width="500">
|
|
|
ElementObservable : 망 구성이 변경되었을 때 알림 기능을 제공하는 클래스로 AddElementObserver()로 알람을 받을 클래스를 등록한다
|
|
|
ElementObserver : ElementObservable에서 등록된 클래스에서 ElementObserver를 상속받아 UpdateElementObser 함수로 Notification이 발생한다
|
|
|
ElementManagerInterface : ElementManager에 사용되는 인터페이스를 정의한 추상 클래스
|
|
|
ElementManager : 노드의 추가/삭제 및 노드와 망 전체 리스트를 관리하는 클래스
|
|
|
**ElementObservable :** 망 구성이 변경되었을 때 알림 기능을 제공하는 클래스로 AddElementObserver()로 알람을 받을 클래스를 등록한다
|
|
|
**ElementObserver :** ElementObservable에서 등록된 클래스에서 ElementObserver를 상속받아 UpdateElementObser 함수로 Notification이 발생한다
|
|
|
**ElementManagerInterface :** ElementManager에 사용되는 인터페이스를 정의한 추상 클래스
|
|
|
**ElementManager :** 노드의 추가/삭제 및 노드와 망 전체 리스트를 관리하는 클래스
|
|
|
|
|
|
### 나) DB 파일을 읽어 그룹, 노드, 망(링크) 데이터를 구성하는 순서도
|
|
|
<img src="Element_Image/elementFlow1.png" width="500">
|
... | ... | @@ -64,160 +64,159 @@ ElementManager : 노드의 추가/삭제 및 노드와 망 전체 리스트를 |
|
|
<img src="Element_Image/elementFlowLinkDel.png" width="500">
|
|
|
|
|
|
### 카) Iris3 element Interface
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetupMaxNodeCount(int maxCount)
|
|
|
관리 가능한 최대 노드 개수 변경 (기본 값 : 256)
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_GetMaxNodeCount()
|
|
|
관리 가능한 최대 노드 개수 리턴
|
|
|
IRIS3_ELEMENT_DECL ElementManagerInterface* Iris3elem_GetManager()
|
|
|
ElementManager 리턴
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetManager(ElementManagerInterface* manager)
|
|
|
ElementManager 강제 할당
|
|
|
IRIS3_ELEMENT_DECL ElementNode* Iris3elem_GetCurrentNode()
|
|
|
Current 노드 리턴
|
|
|
IRIS3_ELEMENT_DECL Element* Iris3elem_GetCurrentElement()
|
|
|
Current element리턴
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_SetCurrentElement(Element* pCurrElem, BOOL bUpdateNotify=TRUE)
|
|
|
Current element 지정
|
|
|
IRIS3_ELEMENT_DECL Element* Iris3elem_GetSelectedTreeElement()
|
|
|
선택된 Tree element 반환
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetSelectedTreeElement(Element* pElement)
|
|
|
Tree element 선택
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_Init(struct DBConnType elemCfgDB, CString emsIniPath, CString nodePosIniPath)
|
|
|
ElementManager에서 사용할 DB, 환경설정 등의 정보를 설정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_UseCommandGateway(int nodeTypeID, BOOL bUse)
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_IsUseCommandGateway(int nodeTypeID)
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_EnableHeartbeat()
|
|
|
특정 함수나 루틴의 수행시간을 계산해주는 기능의 동작여부를 설정
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_RegisterHeartbeat(int nodeTypeID, CString strHbCmd, int timeSpan)
|
|
|
노드가 계속 살아 있는지 감시(Heartbeat)하는 인터페이스를 등록
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_AliveCheckerVersion
|
|
|
연결이 끊어진 노드에 PING 메시지 보내는 Version 설정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_CheckAliveForAllNode(BOOL bForAllNode)
|
|
|
class Element의 멤버 변수m_bUsable : 고정된 개수의 elem을 미리 생성해두고, use flag로 액세스를 제어하려는 경우에 사용된다. (0 : not usable, 1: usable)
|
|
|
not usable 노드에 대해서도 Alive 체크를 할 것인지 여부 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetDisconPingInterval(int secs)
|
|
|
연결이 끊어진 노드에 PING 메시지 보내는 간격 설정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetDisconFirstTimeout(int secs)
|
|
|
노드 단절을 판단하는 첫 번째 초과시간
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetDisconSecondTimeout(int secs)
|
|
|
노드 단절을 판단하는 두 번째 초과시간
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconPingCmd(CString strCmd)
|
|
|
단절된 노드에 PING 메시지 보낼 명령 문자열
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconConfirmCmd(CString strCmd)
|
|
|
단절된 노드에 보낼 명령 문자열
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconPingCmd(int nNodeTypeID, CString strCmd)
|
|
|
단절된 노드에 보낼 명령 문자열 (노드 타입별 지정)
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconConfirmCmd(int nNodeTypeID, CString strCmd)
|
|
|
단절된 노드에 보낼 명령 문자열 (노드 타입별 지정)
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_IsConfirmResponse(ElementNode* pNode)
|
|
|
단절 의심상태에서 마지막으로 보낸 명령어가 CONFIRM 명령인지 여부
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_InitAllNodeStatus()
|
|
|
모든 노드의 LedInfo 정보를 초기화
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_BroadcastRtrvSys()
|
|
|
EMS의 모든 노드에게 RTRV-SYS 명령어를 broadcast
|
|
|
RTRV-SYS : TID, NODE_NAME, NODE_ID(GROUP), NE_TYPE, SHELF_TYPE, SHELF_ID, TOPOLOGY, VENDOR 등 노드의 정보를 반환하는 명령어
|
|
|
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_BroadcastRtrvSys(BOOL bOnlyForUsable)
|
|
|
usable 노드에 RTRV-SYS 명령어를 broadcast
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_SendCommand(ElementNode* pNode, CString strCmd)
|
|
|
특정 노드에 명령을 전송
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SendCommand2(Element* pTargetElement, CString strCmd)
|
|
|
ElementComposite 내의 모든 노드에 명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SendCommand2(Element* pTargetElement, CString strCmd, BOOL bOnlyForUsable)
|
|
|
EMS의 특정 노드에 명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL unsigned int Iris3elem_GetNetType(const char* netTypeStr)
|
|
|
망타입은 STAR, LADM(일렬). RING, MESH 등이 있는데 망타입 문자열 “PtoP”, “STAR” 등을 받으면 Iris에서 Define된 망 타입이 반환
|
|
|
IRIS3_ELEMENT_DECL const char* Iris3elem_GetNetTypeStr(unsigned int netType)
|
|
|
Iris에서 Define된 망 타입을 받으면 망타입 문자열이 반환
|
|
|
IRIS3_ELEMENT_DECL const char* Iris3elem_GetNetTypeDescStr(unsigned int netType)
|
|
|
망타입 alias 문자열 “링”, “메쉬” 등이 반환
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_SetNetTypeDescStr(unsigned int netType, char* newDescStr)
|
|
|
망타입 alias를 지정
|
|
|
IRIS3_ELEMENT_DECL ElementCreator* Iris3elem_GetElementCreator(int nodeTypeID /* IRIS3_NODETYPEID_xxx */)
|
|
|
ElementCreator 객체 조회
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_AddElementCreator(int nodeTypeID /* IRIS3_NODETYPEID_xxx */, ElementCreator* creator)
|
|
|
ElementCreator 객체 등록
|
|
|
IRIS3_ELEMENT_DECL ElementNode* default_create_node(unsigned int neType /* IRIS3_NETYPE_xxx */, unsigned char shelfID)
|
|
|
ElementCreator 객체 생성
|
|
|
IRIS3_ELEMENT_DECL ElementNode* default_create_node2(ElementNet* pGroup, unsigned int neType, unsigned char shelfID, unsigned int ip)
|
|
|
ElementCreator 객체 생성 (SetIP 추가)
|
|
|
IRIS3_ELEMENT_DECL ElementNode* default_create_metaaddr(ElementNode* pCurrNode, MetaAddrInfo* pMetaAddrInfo /*OUT*/)
|
|
|
각 노드에 대해 meta_addr을 만들기 위해 필요한 정보를 채우는 함수
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_TurnOnTidBlock()
|
|
|
Tid를 사용하는 함수
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_TurnOffTidBlock()
|
|
|
Tid를 사용을 막는 함수
|
|
|
IRIS3_ELEMENT_DECL char* Iris3elem_GetCurrTID()
|
|
|
노드의 Tid를 반환
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_SaveCurrentNodeTypeID()
|
|
|
lemonif에서 노드 타입별로 리소스ID를 찾을 수 있도록 노드 타입을 기억해 두는 함수
|
|
|
IRIS3_ELEMENT_DECL unsigned int Iris3elem_GetShelfId(int nodeTypeID /* IRIS3_NODETYPEID_xxx */, CString strShelfType)
|
|
|
Shelf타입 문자열을 Shelf ID로 바꿔주는 함수
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_Xid2Node(char* xid, ElementNode** ppNode)
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetNetSeverityMode( enum Iris3NetSeverityMode mode )
|
|
|
DISCONN 표시 방법 설정 (GROUP내에 모든 노드가 Disconn or Deact일 경우/ GROUP내에 일부 노드가 Disconn or Deact일 경우)
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_CheckDbVersion()
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_EnumAllNodes(BOOL (*node_enum_proc)(ElementNode* node, void* param), void* param)
|
|
|
모든 노드에 주어진 콜벡함수 호출
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_EnumUsableNodes(BOOL (*node_enum_proc)(ElementNode* node, void* param), void* param)
|
|
|
usable 노드를 찾아서 콜벡함수 호출
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_InitStartup()
|
|
|
Reliable 서비스에 필요한 SAP, Reliable 서비스에 필요한 송신용 callback 과 수신용 callback 2 개를 등록
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetStartupSap(int newSap)
|
|
|
startup sap 지정 : 기본값 = 255
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterStartupCmd(CString strCmd)
|
|
|
startup 명령어 지정 : 기본값 = RTRV-SYS;
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_RegisterRestartUserCallback(void restart_user_cb(struct meta_addr *src, ElementNode* pNode))
|
|
|
startup일때 app에서 뭔가 해주고 싶으면 callback 등록
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_EnableLoginLogout(BOOL bOnOff)
|
|
|
Login/Logout 기능 사용 여부 등록
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterLoginCmd(CString strCmd)
|
|
|
Login 명령어를 등록
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterLogoutCmd(CString strCmd)
|
|
|
Logout 명령어를 등록
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_SendLogin(ElementNode* pNode)
|
|
|
노드에 Login 명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL BOOL Iris3elem_SendLogout(ElementNode* pNode)
|
|
|
노드에 Logout 명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogin()
|
|
|
EMS의 모든 노드에 Login 명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogout()
|
|
|
EMS의 모든 노드에 Logout 명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogin(BOOL bOnlyForUsable)
|
|
|
not usable 노드에 대해서도 Login 명령어를 전송 할 것인지 여부 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogout(BOOL bOnlyForUsable)
|
|
|
not usable 노드에 대해서도 Logout 명령어를 전송 할 것인지 여부 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetNodeKeyType(enum Iris3NodeKeyType type)
|
|
|
노드 KEY 타입을 지정 (Iris3NodeKeyType(NODENAME, TID, FULLNAME)으로 지정할 수 있음)
|
|
|
IRIS3_ELEMENT_DECL enum Iris3NodeKeyType Iris3elem_GetNodeKeyType()
|
|
|
노드 KEY 타입 반환
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetLinkNodeKeyType(enum Iris3LinkNodeKeyType type)
|
|
|
링크의 KEY 타입을 지정
|
|
|
IRIS3_ELEMENT_DECL enum Iris3LinkNodeKeyType Iris3elem_GetLinkNodeKeyType()
|
|
|
링크의 KEY 타입을 반환
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetNodePosSectionType(enum Iris3NodePosSectionType type)
|
|
|
node_pos.ini(노드 위치 파일)의 섹션값 타입(NODENAME, TID) 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetNodePosKeyType(enum Iris3NodePosKeyType type)
|
|
|
node_pos.ini(노드 위치 파일)의 KEY 타입 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_SetSerialNumber(int max)
|
|
|
Client에는 DB가 없으므로 명시적인 초기화 필요
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RtrvSysEachTimeCurrentChanged(BOOL bAutoSend, const char* rtrvSysCmd=NULL, BOOL bSendToChild=FALSE, BOOL bSendOnlyForUsable=TRUE)
|
|
|
Current 노드 변경 시 RTRV-SYS명령어를 전송
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_Persistence_EnableNodeAddAuto(BOOL bAutoAdd)
|
|
|
DB에서 로딩할 때 노드를 자동으로 추가시켜줄 것인지 여부 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_Persistence_UsePermissionField(BOOL bUse)
|
|
|
IRIS_GROUP 테이블의 PERMISSION_TYPE 필드를 사용할지 여부 지정
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_Persistence_SetVersion(int ver/*1,2*/)
|
|
|
IRIS3_ELEMENT_DECL void Iris3elem_RegisterSevLevelTable(SevLevelDesicionTable* table)
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_GetMoreSevLevel(int sev0, int sev1)
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_GetNodeListCount()
|
|
|
EMS에서 관리하는 전체 노드 개수
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_GetNodeInfo(int ith, char* iris_code/*OUT*/, char* xid/*OUT*/, unsigned int* ip/*OUT*/)
|
|
|
노드 정보 조회 (Iris code, xid, 노드 ip가 조회)
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_Xid2Iriscode(char* xid, unsigned char* iris_code/*OUT*/)
|
|
|
xid를 Iris code로 변환
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_Xid2MetaAddr(char* xid, struct meta_addr** ppAddr/*OUT*/)
|
|
|
xid를 meta 주소값으로 변환
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_RtXid2GwXid(char* rtXid, char* gwXid/*OUT*/)
|
|
|
IRIS3_ELEMENT_DECL int Iris3elem_GetXidSubpart(char* xid, int idx, char* xid_subpart/*OUT*/)
|
|
|
xid 문자열을 파싱하여 n번째 항목을 리턴 |
|
|
\ No newline at end of file |
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetupMaxNodeCount(int maxCount)**
|
|
|
관리 가능한 최대 노드 개수 변경 (기본 값 : 256)
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_GetMaxNodeCount()**
|
|
|
관리 가능한 최대 노드 개수 리턴
|
|
|
**IRIS3_ELEMENT_DECL ElementManagerInterface\* Iris3elem_GetManager()**
|
|
|
ElementManager 리턴
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetManager(ElementManagerInterface\* manager)**
|
|
|
ElementManager 강제 할당
|
|
|
**IRIS3_ELEMENT_DECL ElementNode\* Iris3elem_GetCurrentNode()**
|
|
|
Current 노드 리턴
|
|
|
**IRIS3_ELEMENT_DECL Element\* Iris3elem_GetCurrentElement()**
|
|
|
Current element리턴
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_SetCurrentElement(Element\* pCurrElem, BOOL bUpdateNotify=TRUE)**
|
|
|
Current element 지정
|
|
|
**IRIS3_ELEMENT_DECL Element\* Iris3elem_GetSelectedTreeElement()**
|
|
|
선택된 Tree element 반환
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetSelectedTreeElement(Element\* pElement)**
|
|
|
Tree element 선택
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_Init(struct DBConnType elemCfgDB, CString emsIniPath, CString nodePosIniPath)**
|
|
|
ElementManager에서 사용할 DB, 환경설정 등의 정보를 설정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_UseCommandGateway(int nodeTypeID, BOOL bUse)**
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_IsUseCommandGateway(int nodeTypeID)**
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_EnableHeartbeat()**
|
|
|
특정 함수나 루틴의 수행시간을 계산해주는 기능의 동작여부를 설정
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_RegisterHeartbeat(int nodeTypeID, CString strHbCmd, int timeSpan)**
|
|
|
노드가 계속 살아 있는지 감시(Heartbeat)하는 인터페이스를 등록
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_AliveCheckerVersion**
|
|
|
연결이 끊어진 노드에 PING 메시지 보내는 Version 설정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_CheckAliveForAllNode(BOOL bForAllNode)**
|
|
|
class Element의 멤버 변수m_bUsable : 고정된 개수의 elem을 미리 생성해두고, use flag로 액세스를 제어하려는 경우에 사용된다. (0 : not usable, 1: usable)
|
|
|
not usable 노드에 대해서도 Alive 체크를 할 것인지 여부 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetDisconPingInterval(int secs)**
|
|
|
연결이 끊어진 노드에 PING 메시지 보내는 간격 설정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetDisconFirstTimeout(int secs)**
|
|
|
노드 단절을 판단하는 첫 번째 초과시간
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetDisconSecondTimeout(int secs)**
|
|
|
노드 단절을 판단하는 두 번째 초과시간
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconPingCmd(CString strCmd)**
|
|
|
단절된 노드에 PING 메시지 보낼 명령 문자열
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconConfirmCmd(CString strCmd)**
|
|
|
단절된 노드에 보낼 명령 문자열
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconPingCmd(int nNodeTypeID, CString strCmd)**
|
|
|
단절된 노드에 보낼 명령 문자열 (노드 타입별 지정)
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterDisconConfirmCmd(int nNodeTypeID, CString strCmd)**
|
|
|
단절된 노드에 보낼 명령 문자열 (노드 타입별 지정)
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_IsConfirmResponse(ElementNode\* pNode)**
|
|
|
단절 의심상태에서 마지막으로 보낸 명령어가 CONFIRM 명령인지 여부
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_InitAllNodeStatus()**
|
|
|
모든 노드의 LedInfo 정보를 초기화
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_BroadcastRtrvSys()**
|
|
|
EMS의 모든 노드에게 RTRV-SYS 명령어를 broadcast
|
|
|
RTRV-SYS : TID, NODE_NAME, NODE_ID(GROUP), NE_TYPE, SHELF_TYPE, SHELF_ID, TOPOLOGY, VENDOR 등 노드의 정보를 반환하는 명령어
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_BroadcastRtrvSys(BOOL bOnlyForUsable)**
|
|
|
usable 노드에 RTRV-SYS 명령어를 broadcast
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_SendCommand(ElementNode\* pNode, CString strCmd)**
|
|
|
특정 노드에 명령을 전송
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SendCommand2(Element\* pTargetElement, CString strCmd)**
|
|
|
ElementComposite 내의 모든 노드에 명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SendCommand2(Element\* pTargetElement, CString strCmd, BOOL bOnlyForUsable)**
|
|
|
EMS의 특정 노드에 명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL unsigned int Iris3elem_GetNetType(const char\* netTypeStr)**
|
|
|
망타입은 STAR, LADM(일렬). RING, MESH 등이 있는데 망타입 문자열 “PtoP”, “STAR” 등을 받으면 Iris에서 Define된 망 타입이 반환
|
|
|
**IRIS3_ELEMENT_DECL const char\* Iris3elem_GetNetTypeStr(unsigned int netType)**
|
|
|
Iris에서 Define된 망 타입을 받으면 망타입 문자열이 반환
|
|
|
**IRIS3_ELEMENT_DECL const char\* Iris3elem_GetNetTypeDescStr(unsigned int netType)**
|
|
|
망타입 alias 문자열 “링”, “메쉬” 등이 반환
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_SetNetTypeDescStr(unsigned int netType, char\* newDescStr)**
|
|
|
망타입 alias를 지정
|
|
|
**IRIS3_ELEMENT_DECL ElementCreator\* Iris3elem_GetElementCreator(int nodeTypeID /\* IRIS3_NODETYPEID_xxx \*/)**
|
|
|
ElementCreator 객체 조회
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_AddElementCreator(int nodeTypeID /\* IRIS3_NODETYPEID_xxx \*/, ElementCreator\* creator)**
|
|
|
ElementCreator 객체 등록
|
|
|
**IRIS3_ELEMENT_DECL ElementNode\* default_create_node(unsigned int neType /\* IRIS3_NETYPE_xxx \*/, unsigned char shelfID)**
|
|
|
ElementCreator 객체 생성
|
|
|
**IRIS3_ELEMENT_DECL ElementNode\* default_create_node2(ElementNet\* pGroup, unsigned int neType, unsigned char shelfID, unsigned int ip)**
|
|
|
ElementCreator 객체 생성 (SetIP 추가)
|
|
|
**IRIS3_ELEMENT_DECL ElementNode\* default_create_metaaddr(ElementNode\* pCurrNode, MetaAddrInfo\* pMetaAddrInfo /\*OUT\*/)**
|
|
|
각 노드에 대해 meta_addr을 만들기 위해 필요한 정보를 채우는 함수
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_TurnOnTidBlock()**
|
|
|
Tid를 사용하는 함수
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_TurnOffTidBlock()**
|
|
|
Tid를 사용을 막는 함수
|
|
|
**IRIS3_ELEMENT_DECL char\* Iris3elem_GetCurrTID()**
|
|
|
노드의 Tid를 반환
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_SaveCurrentNodeTypeID()**
|
|
|
lemonif에서 노드 타입별로 리소스ID를 찾을 수 있도록 노드 타입을 기억해 두는 함수
|
|
|
**IRIS3_ELEMENT_DECL unsigned int Iris3elem_GetShelfId(int nodeTypeID /\* IRIS3_NODETYPEID_xxx \*/, CString strShelfType)**
|
|
|
Shelf타입 문자열을 Shelf ID로 바꿔주는 함수
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_Xid2Node(char\* xid, ElementNode\*\* ppNode)**
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetNetSeverityMode( enum Iris3NetSeverityMode mode )**
|
|
|
DISCONN 표시 방법 설정 (GROUP내에 모든 노드가 Disconn or Deact일 경우/ GROUP내에 일부 노드가 Disconn or Deact일 경우)
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_CheckDbVersion()**
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_EnumAllNodes(BOOL (\*node_enum_proc)(ElementNode\* node, void\* param), void\* param)**
|
|
|
모든 노드에 주어진 콜벡함수 호출
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_EnumUsableNodes(BOOL (\*node_enum_proc)(ElementNode\* node, void\* param), void\* param)**
|
|
|
usable 노드를 찾아서 콜벡함수 호출
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_InitStartup()**
|
|
|
Reliable 서비스에 필요한 SAP, Reliable 서비스에 필요한 송신용 callback 과 수신용 callback 2 개를 등록
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetStartupSap(int newSap)**
|
|
|
startup sap 지정 : 기본값 = 255
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterStartupCmd(CString strCmd)**
|
|
|
startup 명령어 지정 : 기본값 = RTRV-SYS;
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_RegisterRestartUserCallback(void restart_user_cb(struct meta_addr \*src, ElementNode\* pNode))**
|
|
|
startup일때 app에서 뭔가 해주고 싶으면 callback 등록
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_EnableLoginLogout(BOOL bOnOff)**
|
|
|
Login/Logout 기능 사용 여부 등록
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterLoginCmd(CString strCmd)**
|
|
|
Login 명령어를 등록
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterLogoutCmd(CString strCmd)**
|
|
|
Logout 명령어를 등록
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_SendLogin(ElementNode\* pNode)**
|
|
|
노드에 Login 명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL BOOL Iris3elem_SendLogout(ElementNode\* pNode)**
|
|
|
노드에 Logout 명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogin()**
|
|
|
EMS의 모든 노드에 Login 명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogout()**
|
|
|
EMS의 모든 노드에 Logout 명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogin(BOOL bOnlyForUsable)**
|
|
|
not usable 노드에 대해서도 Login 명령어를 전송 할 것인지 여부 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_BroadcastLogout(BOOL bOnlyForUsable)**
|
|
|
not usable 노드에 대해서도 Logout 명령어를 전송 할 것인지 여부 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetNodeKeyType(enum Iris3NodeKeyType type)**
|
|
|
노드 KEY 타입을 지정 (Iris3NodeKeyType(NODENAME, TID, FULLNAME)으로 지정할 수 있음)
|
|
|
**IRIS3_ELEMENT_DECL enum Iris3NodeKeyType Iris3elem_GetNodeKeyType()**
|
|
|
노드 KEY 타입 반환
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetLinkNodeKeyType(enum Iris3LinkNodeKeyType type)**
|
|
|
링크의 KEY 타입을 지정
|
|
|
**IRIS3_ELEMENT_DECL enum Iris3LinkNodeKeyType Iris3elem_GetLinkNodeKeyType()**
|
|
|
링크의 KEY 타입을 반환
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetNodePosSectionType(enum Iris3NodePosSectionType type)**
|
|
|
node_pos.ini(노드 위치 파일)의 섹션값 타입(NODENAME, TID) 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetNodePosKeyType(enum Iris3NodePosKeyType type)**
|
|
|
node_pos.ini(노드 위치 파일)의 KEY 타입 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_SetSerialNumber(int max)**
|
|
|
Client에는 DB가 없으므로 명시적인 초기화 필요
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RtrvSysEachTimeCurrentChanged(BOOL bAutoSend, const char\* rtrvSysCmd=NULL, BOOL bSendToChild=FALSE, BOOL bSendOnlyForUsable=TRUE)**
|
|
|
Current 노드 변경 시 RTRV-SYS명령어를 전송
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_Persistence_EnableNodeAddAuto(BOOL bAutoAdd)**
|
|
|
DB에서 로딩할 때 노드를 자동으로 추가시켜줄 것인지 여부 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_Persistence_UsePermissionField(BOOL bUse)**
|
|
|
IRIS_GROUP 테이블의 PERMISSION_TYPE 필드를 사용할지 여부 지정
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_Persistence_SetVersion(int ver/\*1,2\*/)**
|
|
|
**IRIS3_ELEMENT_DECL void Iris3elem_RegisterSevLevelTable(SevLevelDesicionTable\* table)**
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_GetMoreSevLevel(int sev0, int sev1)**
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_GetNodeListCount()**
|
|
|
EMS에서 관리하는 전체 노드 개수
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_GetNodeInfo(int ith, char\* iris_code/\*OUT\*/, char\* xid/\*OUT\*/, unsigned int\* ip/\*OUT\*/)**
|
|
|
노드 정보 조회 (Iris code, xid, 노드 ip가 조회)
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_Xid2Iriscode(char\* xid, unsigned char\* iris_code/\*OUT\*/)**
|
|
|
xid를 Iris code로 변환
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_Xid2MetaAddr(char\* xid, struct meta_addr\*\* ppAddr/\*OUT\*/)**
|
|
|
xid를 meta 주소값으로 변환
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_RtXid2GwXid(char\* rtXid, char\* gwXid/\*OUT\*/)**
|
|
|
**IRIS3_ELEMENT_DECL int Iris3elem_GetXidSubpart(char\* xid, int idx, char\* xid_subpart/\*OUT\*/)**
|
|
|
xid 문자열을 파싱하여 n번째 항목을 리턴 |
|
|
\ No newline at end of file |