ospf_container_functions.h

来自「vxworks下ospf协议栈」· C头文件 代码 · 共 126 行

H
126
字号
/* ospf_container_functions.h - OSPF container functions header file *//* Copyright 2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history-------------------01a,30may03,agi created (ported from RWOS)*/#if !defined (ospf_container_functions_h)#define ospf_container_functions_h#include "ospf_container.h"typedef OSPF_CONTAINER_ITERATOR (*FP_OSPF_CONTAINER_CREATE_ITERATOR) (OSPF_CONTAINER* p_rw_container);typedef void (*FP_OSPF_CONTAINER_FREE_ITERATOR) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef OSPF_CONTAINER_ITERATOR (*FP_OSPF_CONTAINER_CREATE_COPY_OF_ITERATOR) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef void (*FP_OSPF_CONTAINER_FREE) (OSPF_CONTAINER* p_rw_container);typedef bool (*FP_OSPF_CONTAINER_ADD_FRONT) (OSPF_CONTAINER* p_rw_container, const OSPF_CONTAINER_ITEM* p_item);typedef void (*FP_OSPF_CONTAINER_REMOVE_FRONT) (OSPF_CONTAINER* p_rw_container);typedef bool (*FP_OSPF_CONTAINER_ADD_BACK) (OSPF_CONTAINER* p_rw_container, const OSPF_CONTAINER_ITEM* p_item);typedef void (*FP_OSPF_CONTAINER_REMOVE_BACK) (OSPF_CONTAINER* p_rw_container);typedef bool (*FP_OSPF_CONTAINER_INSERT) (OSPF_CONTAINER_ITERATOR* p_iterator, const OSPF_CONTAINER_ITEM* p_item);typedef bool (*FP_OSPF_CONTAINER_REMOVE) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef UINT (*FP_OSPF_CONTAINER_SIZE) (const OSPF_CONTAINER* p_rw_container);typedef OSPF_CONTAINER_ITEM* (*FP_OSPF_CONTAINER_FRONT) (const OSPF_CONTAINER* p_rw_container);typedef OSPF_CONTAINER_ITEM* (*FP_OSPF_CONTAINER_BACK) (const OSPF_CONTAINER* p_rw_container);typedef bool (*FP_OSPF_CONTAINER_IS_AT_FRONT) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef bool (*FP_OSPF_CONTAINER_IS_AT_END) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef void (*FP_OSPF_CONTAINER_GOTO_FRONT) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef void (*FP_OSPF_CONTAINER_GOTO_END) (OSPF_CONTAINER_ITERATOR* p_iterator);   /* end == last + 1 */typedef bool (*FP_OSPF_CONTAINER_FIND_BY_CONTENT) (OSPF_CONTAINER_ITEM* p_item, OSPF_CONTAINER_ITERATOR* p_iterator_matched_item);typedef bool (*FP_OSPF_CONTAINER_FIND) (FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER fp_criteria_matcher, OSPF_CONTAINER_CRITERIA* p_criteria,                        OSPF_CONTAINER_ITERATOR* p_iterator_matched_item);typedef bool (*FP_OSPF_CONTAINER_FIND_IN_RANGE) (OSPF_CONTAINER_ITERATOR* p_iterator_first, OSPF_CONTAINER_ITERATOR* p_iterator_last,                        FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER fp_criteria_matcher, OSPF_CONTAINER_CRITERIA* p_criteria,                        OSPF_CONTAINER_ITERATOR* p_iterator_matched_item);typedef bool (*FP_OSPF_CONTAINER_NEXT) (OSPF_CONTAINER_ITERATOR* p_iterator);   /* return false if reaches the back. */typedef bool (*FP_OSPF_CONTAINER_PREVIOUS) (OSPF_CONTAINER_ITERATOR* p_iterator);   /* return false if reaches the front */typedef OSPF_CONTAINER_ITEM* (*FP_OSPF_CONTAINER_AT) (OSPF_CONTAINER_ITERATOR* p_iterator);typedef bool (*FP_OSPF_CONTAINER_SET_AT) (OSPF_CONTAINER_ITERATOR* p_iterator, const OSPF_CONTAINER_ITEM* p_item);typedef struct OSPF_CONTAINER_FUNCTIONS{    FP_OSPF_CONTAINER_CREATE_ITERATOR create_iterator;    FP_OSPF_CONTAINER_FREE free_container;    FP_OSPF_CONTAINER_ADD_FRONT add_at_front;    FP_OSPF_CONTAINER_REMOVE_FRONT remove_from_front;    FP_OSPF_CONTAINER_ADD_BACK add_at_back;    FP_OSPF_CONTAINER_REMOVE_BACK remove_from_back;    FP_OSPF_CONTAINER_SIZE get_container_size;    FP_OSPF_CONTAINER_FRONT get_item_at_front;    FP_OSPF_CONTAINER_BACK get_item_at_back;} OSPF_CONTAINER_FUNCTIONS;typedef struct RW_ITERATOR_FUNCTIONS{    FP_OSPF_CONTAINER_FREE_ITERATOR free_iterator;    FP_OSPF_CONTAINER_CREATE_COPY_OF_ITERATOR create_copy_of_iterator;    FP_OSPF_CONTAINER_INSERT insert_at_iterator;    FP_OSPF_CONTAINER_REMOVE remove_from_iterator;    FP_OSPF_CONTAINER_IS_AT_FRONT iterator_is_at_front;    FP_OSPF_CONTAINER_IS_AT_END iterator_is_at_end;    FP_OSPF_CONTAINER_GOTO_FRONT iterator_set_at_front;    FP_OSPF_CONTAINER_GOTO_END iterator_set_at_end; /* end == last + 1 */    FP_OSPF_CONTAINER_FIND_BY_CONTENT iterator_find_by_content;    FP_OSPF_CONTAINER_FIND iterator_find;    FP_OSPF_CONTAINER_FIND_IN_RANGE iterator_find_in_range;    FP_OSPF_CONTAINER_NEXT set_iterator_to_next_item;   /* return false if reaches the back. */    FP_OSPF_CONTAINER_PREVIOUS set_iterator_to_previous_item;   /* return false if reaches the front */    FP_OSPF_CONTAINER_AT get_item_at_iterator;    FP_OSPF_CONTAINER_SET_AT set_item_at_iterator;} RW_ITERATOR_FUNCTIONS;#endif /* ospf_container_functions_h */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?