Stack of I3SubIdentifier, implementing the "identifier stack" proposed in Internet Indirection Infrastructure. More...
#include <I3IdentifierStack.h>
Public Member Functions | |
| void | push (const I3Identifier &id) |
| Pushes an I3Identifier. | |
| void | push (const I3IPAddress &ip) |
| Pushes an I3IPAddress. | |
| void | push (const IPvXAddress &add, int port) |
| Pushes an IP address with port. | |
| void | push (const I3IdentifierStack &stack) |
| Appends an I3IdentifierStack at the end. | |
| I3SubIdentifier & | peek () |
| Returns a reference to the top of the stack. | |
| const I3SubIdentifier & | peek () const |
| Returns a const reference to the top of the stack. | |
| void | pop () |
| Pops a subidentifier from the top of the stack. | |
| void | clear () |
| uint32_t | size () const |
| Returns the size of the stack. | |
| int | compareTo (const I3IdentifierStack &s) const |
| Comparation function. | |
| int | length () const |
| void | replaceAddress (const I3IPAddress &source, const I3IPAddress &dest) |
Protected Attributes | |
| std::list< I3SubIdentifier > | stack |
| Stack of subidentifiers. | |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const I3IdentifierStack &t) |
Stack of I3SubIdentifier, implementing the "identifier stack" proposed in Internet Indirection Infrastructure.
Definition at line 33 of file I3IdentifierStack.h.
| void I3IdentifierStack::clear | ( | ) |
Definition at line 99 of file I3IdentifierStack.cc.
Referenced by I3Trigger::clear().
{
stack.clear();
}
| int I3IdentifierStack::compareTo | ( | const I3IdentifierStack & | s | ) | const |
Comparation function.
| s | Stack to be compared against |
Definition at line 78 of file I3IdentifierStack.cc.
Referenced by I3Trigger::compareTo().
{
int cmp;
if (stack.size() != s.size()) {
return stack.size() - s.size();
}
list<I3SubIdentifier>::const_iterator it0 = stack.begin();
list<I3SubIdentifier>::const_iterator it1 = s.stack.begin();
for (; it0 != stack.end(); it0++, it1++) {
//for (uint i = 0; i < stack.size(); i++) {
cmp = it0->compareTo(*it1);
//cmp = stack[i].compareTo(s.stack[i]);
if (cmp != 0) return cmp;
}
return 0;
}
| int I3IdentifierStack::length | ( | ) | const |
Definition at line 109 of file I3IdentifierStack.cc.
Referenced by I3Trigger::length().
| I3SubIdentifier & I3IdentifierStack::peek | ( | ) |
Returns a reference to the top of the stack.
Definition at line 62 of file I3IdentifierStack.cc.
Referenced by I3::handleUDPMessage(), I3BaseApp::sendPacket(), I3::sendPacket(), and I3::sendToNode().
{
return stack.back();
}
| const I3SubIdentifier & I3IdentifierStack::peek | ( | ) | const |
Returns a const reference to the top of the stack.
Definition at line 67 of file I3IdentifierStack.cc.
{
return stack.back();
}
| void I3IdentifierStack::pop | ( | ) |
Pops a subidentifier from the top of the stack.
Definition at line 72 of file I3IdentifierStack.cc.
Referenced by I3BaseApp::sendPacket(), I3::sendPacket(), and I3::sendToNode().
{
stack.pop_back();
}
| void I3IdentifierStack::push | ( | const I3Identifier & | id | ) |
Pushes an I3Identifier.
| id | Identifier to be pushed |
Definition at line 28 of file I3IdentifierStack.cc.
Referenced by I3Composite::createMessage(), I3TRTClient::handleTimerEvent(), I3BaseApp::insertTrigger(), push(), I3BaseApp::sendPacket(), and I3::sendPacket().
{
I3SubIdentifier id;
id.setIdentifier(identifier);
stack.push_back(id);
}
| void I3IdentifierStack::push | ( | const I3IdentifierStack & | stack | ) |
Appends an I3IdentifierStack at the end.
| stack | Identifier stack to be appended |
Definition at line 53 of file I3IdentifierStack.cc.
{
list<I3SubIdentifier>::const_iterator it;
for (it = s.stack.begin(); it != s.stack.end(); it++) {
stack.push_back(*it);
}
}
| void I3IdentifierStack::push | ( | const I3IPAddress & | ip | ) |
Pushes an I3IPAddress.
| ip | IP address to be pushed |
Definition at line 45 of file I3IdentifierStack.cc.
{
I3SubIdentifier id;
id.setIPAddress(ip);
stack.push_back(id);
}
| void I3IdentifierStack::push | ( | const IPvXAddress & | add, | |
| int | port | |||
| ) |
Pushes an IP address with port.
| add | IP address to be pushed | |
| port | Address port to be pushed |
Definition at line 36 of file I3IdentifierStack.cc.
{
I3IPAddress ipAddress;
ipAddress.setIp(ip);
ipAddress.setPort(port);
push(ipAddress);
}
| void I3IdentifierStack::replaceAddress | ( | const I3IPAddress & | source, | |
| const I3IPAddress & | dest | |||
| ) |
Definition at line 119 of file I3IdentifierStack.cc.
{
list<I3SubIdentifier>::iterator it;
for (it = stack.begin(); it != stack.end(); it++) {
if (it->getType() == I3SubIdentifier::IPAddress && it->getIPAddress() == source) {
it->setIPAddress(dest);
}
}
}
| uint32_t I3IdentifierStack::size | ( | ) | const |
Returns the size of the stack.
Definition at line 104 of file I3IdentifierStack.cc.
Referenced by compareTo(), I3::handleUDPMessage(), I3::insertTrigger(), and I3::sendPacket().
{
return stack.size();
}
| std::ostream& operator<< | ( | std::ostream & | os, | |
| const I3IdentifierStack & | t | |||
| ) | [friend] |
Definition at line 130 of file I3IdentifierStack.cc.
{
list<I3SubIdentifier>::const_iterator it;
for (it = s.stack.begin(); it != s.stack.end(); it++) {
os << *it << ", ";
}
return os;
}
std::list<I3SubIdentifier> I3IdentifierStack::stack [protected] |
Stack of subidentifiers.
Definition at line 83 of file I3IdentifierStack.h.
Referenced by clear(), compareTo(), length(), operator<<(), peek(), pop(), push(), replaceAddress(), and size().
1.7.1