⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospf_container.h

📁 vxworks下ospf协议栈
💻 H
字号:
/* ospf_container.h - OSPF container header file *//* Copyright 2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01a,29may03,agi created (ported from RWOS)*/#if !defined ospf_container_h#define ospf_container_htypedef void OSPF_CONTAINER_ITEM;typedef int (*FP_OSPF_CONTAINER_ITEM_COMPARE) (const OSPF_CONTAINER_ITEM* p_first_item, const OSPF_CONTAINER_ITEM* p_second_item);    /*  returns 0 if the two items are equal, > 0 if first_item > second_item, and < 0 if otherwise. */typedef void OSPF_CONTAINER_CRITERIA;typedef bool (*FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER) (const OSPF_CONTAINER_ITEM* p_item, OSPF_CONTAINER_CRITERIA* p_criteria);    /* returns true if *itertor matches p_criteria *//* class OSPF_CONTAINER:: */typedef void OSPF_CONTAINER;typedef int OSPF_CONTAINER_ITERATOR;OSPF_CONTAINER_ITERATOR ospf_container_create_iterator (OSPF_CONTAINER* p_ospf_container);void ospf_container_free_iterator (OSPF_CONTAINER_ITERATOR iterator);OSPF_CONTAINER_ITERATOR ospf_container_create_copy_of_iterator (OSPF_CONTAINER_ITERATOR iterator);void ospf_container_free (OSPF_CONTAINER* p_ospf_container);void ospf_container_free_items (OSPF_CONTAINER* p_ospf_container);  /* Use only for single buffer items */bool ospf_container_add_front (OSPF_CONTAINER* p_ospf_container, const OSPF_CONTAINER_ITEM* p_item);void ospf_container_remove_front (OSPF_CONTAINER* p_ospf_container);bool ospf_container_add_back (OSPF_CONTAINER* p_ospf_container, const OSPF_CONTAINER_ITEM* p_item);void ospf_container_remove_back (OSPF_CONTAINER* p_ospf_container);bool ospf_container_insert (OSPF_CONTAINER_ITERATOR iterator, const OSPF_CONTAINER_ITEM* p_item);bool ospf_container_remove (OSPF_CONTAINER_ITERATOR iterator);UINT ospf_container_size (const OSPF_CONTAINER* p_ospf_container);OSPF_CONTAINER_ITEM* ospf_container_front (const OSPF_CONTAINER* p_ospf_container);OSPF_CONTAINER_ITEM* ospf_container_back (const OSPF_CONTAINER* p_ospf_container);bool ospf_container_is_at_front (OSPF_CONTAINER_ITERATOR iterator);bool ospf_container_is_at_end (OSPF_CONTAINER_ITERATOR iterator);void ospf_container_goto_front (OSPF_CONTAINER_ITERATOR iterator);void ospf_container_goto_end (OSPF_CONTAINER_ITERATOR iterator);    /* end == last + 1 */bool ospf_container_find_by_content (OSPF_CONTAINER_ITEM* p_item,   OSPF_CONTAINER_ITERATOR iterator_matched_item);bool ospf_container_find (FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER fp_criteria_matcher, OSPF_CONTAINER_CRITERIA* p_criteria,                        OSPF_CONTAINER_ITERATOR iterator_matched_item);bool ospf_container_find_in_range (OSPF_CONTAINER_ITERATOR iterator_first, OSPF_CONTAINER_ITERATOR iterator_last,                        FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER fp_criteria_matcher, OSPF_CONTAINER_CRITERIA* p_criteria,                        OSPF_CONTAINER_ITERATOR iterator_matched_item);bool ospf_container_next (OSPF_CONTAINER_ITERATOR iterator);    /* return false if reaches the back. */bool ospf_container_previous (OSPF_CONTAINER_ITERATOR iterator);    /* return false if reaches the front */OSPF_CONTAINER_ITEM* ospf_container_at (OSPF_CONTAINER_ITERATOR iterator);bool ospf_container_set_at (OSPF_CONTAINER_ITERATOR iterator, const OSPF_CONTAINER_ITEM* p_item);/* class RW_LIST:: */OSPF_CONTAINER* ospf_list_create (FP_OSPF_CONTAINER_ITEM_COMPARE fp_compare);    /* If fp_compare == NULL, the list is unsorted. *//* class RW_ARRAY:: */OSPF_CONTAINER* ospf_array_create (UINT max_number_of_items);bool ospf_array_offset (OSPF_CONTAINER_ITERATOR iterator, int offset);int ospf_array_difference (OSPF_CONTAINER_ITERATOR iterator_1, OSPF_CONTAINER_ITERATOR iterator_2);/*  class RW_HASH_TABLE:: */typedef void RW_HASH_KEY;typedef UINT (*FP_RW_HASHER) (const RW_HASH_KEY* p_hash_key);typedef UINT (*FP_RW_ITEM_HASHER) (const OSPF_CONTAINER_ITEM* p_item);OSPF_CONTAINER* ospf_hash_table_create (UINT max_hash_value, FP_RW_HASHER fp_hasher, FP_RW_ITEM_HASHER fp_item_hasher,                                                 FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER fp_ospf_item_matcher);bool ospf_hash_table_find (const RW_HASH_KEY* p_hash_key, OSPF_CONTAINER_ITERATOR iterator_matched_item);    /* hash table will use RW_HASH_KEY as match criteria during the search. *//* class RW_MAP:: */typedef void RW_MAP_KEY;typedef int (*FP_RW_MAP_KEY_AND_ITEM_COMPARE) (const RW_MAP_KEY* p_map_key, const OSPF_CONTAINER_ITEM* p_item);OSPF_CONTAINER* ospf_map_create (FP_RW_MAP_KEY_AND_ITEM_COMPARE fp_map_key_and_item_compare, FP_OSPF_CONTAINER_ITEM_COMPARE fp_item_compare);bool ospf_map_find (const RW_MAP_KEY* p_map_key, OSPF_CONTAINER_ITERATOR iterator_matched_item);/* class RW_CIDR_TREE: *//*typedef struct RW_CIDR_KEY{    ULONG   key;    ULONG mask_size_in_bits;} RW_CIDR_KEY;*/#endif  /* ospf_container_h */

⌨️ 快捷键说明

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