#include <Groupsock.hh>
Collaboration diagram for GroupsockLookupTable:

Public Member Functions | |
| Groupsock * | Fetch (UsageEnvironment &env, netAddressBits groupAddress, Port port, u_int8_t ttl, Boolean &isNew) |
| Groupsock * | Fetch (UsageEnvironment &env, netAddressBits groupAddress, netAddressBits sourceFilterAddr, Port port, Boolean &isNew) |
| Groupsock * | Lookup (netAddressBits groupAddress, Port port) |
| Groupsock * | Lookup (netAddressBits groupAddress, netAddressBits sourceFilterAddr, Port port) |
| Groupsock * | Lookup (UsageEnvironment &env, int sock) |
| Boolean | Remove (Groupsock const *groupsock) |
Private Member Functions | |
| Groupsock * | AddNew (UsageEnvironment &env, netAddressBits groupAddress, netAddressBits sourceFilterAddress, Port port, u_int8_t ttl) |
Private Attributes | |
| AddressPortLookupTable | fTable |
Friends | |
| class | Iterator |
Data Structures | |
| class | Iterator |
Definition at line 162 of file Groupsock.hh.
| Groupsock * GroupsockLookupTable::Fetch | ( | UsageEnvironment & | env, | |
| netAddressBits | groupAddress, | |||
| Port | port, | |||
| u_int8_t | ttl, | |||
| Boolean & | isNew | |||
| ) |
Definition at line 553 of file Groupsock.cpp.
References AddNew(), env, False, fTable, AddressPortLookupTable::Lookup(), NULL, and True.
00556 { 00557 isNew = False; 00558 Groupsock* groupsock; 00559 do { 00560 groupsock = (Groupsock*) fTable.Lookup(groupAddress, (~0), port); 00561 if (groupsock == NULL) { // we need to create one: 00562 groupsock = AddNew(env, groupAddress, (~0), port, ttl); 00563 if (groupsock == NULL) break; 00564 isNew = True; 00565 } 00566 } while (0); 00567 00568 return groupsock; 00569 }
| Groupsock * GroupsockLookupTable::Fetch | ( | UsageEnvironment & | env, | |
| netAddressBits | groupAddress, | |||
| netAddressBits | sourceFilterAddr, | |||
| Port | port, | |||
| Boolean & | isNew | |||
| ) |
Definition at line 572 of file Groupsock.cpp.
References AddNew(), env, False, fTable, AddressPortLookupTable::Lookup(), NULL, and True.
00575 { 00576 isNew = False; 00577 Groupsock* groupsock; 00578 do { 00579 groupsock 00580 = (Groupsock*) fTable.Lookup(groupAddress, sourceFilterAddr, port); 00581 if (groupsock == NULL) { // we need to create one: 00582 groupsock = AddNew(env, groupAddress, sourceFilterAddr, port, 0); 00583 if (groupsock == NULL) break; 00584 isNew = True; 00585 } 00586 } while (0); 00587 00588 return groupsock; 00589 }
| Groupsock * GroupsockLookupTable::Lookup | ( | netAddressBits | groupAddress, | |
| Port | port | |||
| ) |
Definition at line 592 of file Groupsock.cpp.
References fTable, and AddressPortLookupTable::Lookup().
| Groupsock * GroupsockLookupTable::Lookup | ( | netAddressBits | groupAddress, | |
| netAddressBits | sourceFilterAddr, | |||
| Port | port | |||
| ) |
Definition at line 597 of file Groupsock.cpp.
References fTable, and AddressPortLookupTable::Lookup().
| Groupsock * GroupsockLookupTable::Lookup | ( | UsageEnvironment & | env, | |
| int | sock | |||
| ) |
Definition at line 602 of file Groupsock.cpp.
References env, and getGroupsockBySocket().
00602 { 00603 return getGroupsockBySocket(env, sock); 00604 }
Definition at line 606 of file Groupsock.cpp.
References fTable, Groupsock::groupAddress(), Socket::port(), AddressPortLookupTable::Remove(), Groupsock::sourceFilterAddress(), and unsetGroupsockBySocket().
00606 { 00607 unsetGroupsockBySocket(groupsock); 00608 return fTable.Remove(groupsock->groupAddress().s_addr, 00609 groupsock->sourceFilterAddress().s_addr, 00610 groupsock->port()); 00611 }
| Groupsock * GroupsockLookupTable::AddNew | ( | UsageEnvironment & | env, | |
| netAddressBits | groupAddress, | |||
| netAddressBits | sourceFilterAddress, | |||
| Port | port, | |||
| u_int8_t | ttl | |||
| ) | [private] |
Definition at line 613 of file Groupsock.cpp.
References AddressPortLookupTable::Add(), env, fTable, NULL, setGroupsockBySocket(), and Socket::socketNum().
Referenced by Fetch().
00616 { 00617 Groupsock* groupsock; 00618 do { 00619 struct in_addr groupAddr; groupAddr.s_addr = groupAddress; 00620 if (sourceFilterAddress == netAddressBits(~0)) { 00621 // regular, ISM groupsock 00622 groupsock = new Groupsock(env, groupAddr, port, ttl); 00623 } else { 00624 // SSM groupsock 00625 struct in_addr sourceFilterAddr; 00626 sourceFilterAddr.s_addr = sourceFilterAddress; 00627 groupsock = new Groupsock(env, groupAddr, sourceFilterAddr, port); 00628 } 00629 00630 if (groupsock == NULL || groupsock->socketNum() < 0) break; 00631 00632 if (!setGroupsockBySocket(env, groupsock->socketNum(), groupsock)) break; 00633 00634 fTable.Add(groupAddress, sourceFilterAddress, port, (void*)groupsock); 00635 } while (0); 00636 00637 return groupsock; 00638 }
friend class Iterator [friend] |
Definition at line 199 of file Groupsock.hh.
1.5.2