#include <hash_table.h>
Collaboration diagram for Pkt_Hash_Table:

Public Member Functions | |
| Pkt_Hash_Table () | |
| void | reset () |
| void | put_in_hash (hdr_cdiff *) |
| Pkt_Hash_Entry * | GetHash (ns_addr_t sender_id, unsigned int pkt_num) |
Public Attributes | |
| Tcl_HashTable | htable |
|
|
Definition at line 67 of file hash_table.h. References htable.
00067 {
00068 Tcl_InitHashTable(&htable, 3);
00069 }
|
|
||||||||||||
|
Definition at line 69 of file hash_table.cc. References ns_addr_t::addr_, htable, and ns_addr_t::port_. Referenced by DiffusionProb::consider_new(), DiffusionProb::consider_old(), OmniMcastAgent::ConsiderNew(), FloodingAgent::ConsiderNew(), DiffusionProb::ForwardTxFailed(), DiffusionRate::ProcessPosReinf(), OmniMcastAgent::recv(), FloodingAgent::recv(), DiffusionAgent::recv(), DiffusionRate::recv(), DiffusionProb::recv(), and DiffusionProb::ReTxData().
00071 {
00072 unsigned int key[3];
00073
00074 key[0] = sender_id.addr_;
00075 key[1] = sender_id.port_;
00076 key[2] = pk_num;
00077
00078 Tcl_HashEntry *entryPtr = Tcl_FindHashEntry(&htable, (char *)key);
00079
00080 if (entryPtr == NULL )
00081 return NULL;
00082
00083 return (Pkt_Hash_Entry *)Tcl_GetHashValue(entryPtr);
00084 }
|
|
|
Definition at line 87 of file hash_table.cc. References hdr_cdiff::forward_agent_id, Pkt_Hash_Entry::forwarder_id, Pkt_Hash_Entry::from_agent, htable, Pkt_Hash_Entry::is_forwarded, Pkt_Hash_Entry::num_from, hdr_cdiff::pk_num, hdr_cdiff::sender_id, and Pkt_Hash_Entry::timer. Referenced by OmniMcastAgent::recv(), FloodingAgent::recv(), DiffusionAgent::recv(), DiffusionRate::recv(), and DiffusionProb::recv().
00088 {
00089 Tcl_HashEntry *entryPtr;
00090 Pkt_Hash_Entry *hashPtr;
00091 unsigned int key[3];
00092 int newPtr;
00093
00094 key[0]=(dfh->sender_id).addr_;
00095 key[1]=(dfh->sender_id).port_;
00096 key[2]=dfh->pk_num;
00097
00098 entryPtr = Tcl_CreateHashEntry(&htable, (char *)key, &newPtr);
00099 if (!newPtr)
00100 return;
00101
00102 hashPtr = new Pkt_Hash_Entry;
00103 hashPtr->forwarder_id = dfh->forward_agent_id;
00104 hashPtr->from_agent = NULL;
00105 hashPtr->is_forwarded = false;
00106 hashPtr->num_from = 0;
00107 hashPtr->timer = NULL;
00108
00109 Tcl_SetHashValue(entryPtr, hashPtr);
00110 }
|
|
|
Definition at line 54 of file hash_table.cc. References htable. Referenced by OmniMcastAgent::reset(), FloodingAgent::reset(), and DiffusionAgent::reset().
00055 {
00056 Pkt_Hash_Entry *hashPtr;
00057 Tcl_HashEntry *entryPtr;
00058 Tcl_HashSearch searchPtr;
00059
00060 entryPtr = Tcl_FirstHashEntry(&htable, &searchPtr);
00061 while (entryPtr != NULL) {
00062 hashPtr = (Pkt_Hash_Entry *)Tcl_GetHashValue(entryPtr);
00063 delete hashPtr;
00064 Tcl_DeleteHashEntry(entryPtr);
00065 entryPtr = Tcl_NextHashEntry(&searchPtr);
00066 }
00067 }
|
|
|
Definition at line 65 of file hash_table.h. Referenced by GetHash(), Pkt_Hash_Table(), put_in_hash(), and reset(). |
1.3.3