OverSim
I3Trigger Class Reference

Implementation of an Internet Indirection Infrastructure trigger. More...

#include <I3Trigger.h>

Public Member Functions

 I3Trigger ()
 Constructor.
int compareTo (const I3Trigger &t) const
 Comparison function.
bool operator< (const I3Trigger &t) const
 "Less than" comparison function
bool operator> (const I3Trigger &t) const
 "Greater than" comparison function
bool operator== (const I3Trigger &t) const
 "Equals" comparison function
void setIdentifier (const I3Identifier &id)
 Sets the identifier.
void setInsertionTime (simtime_t time)
 Sets the insertion time.
void setIdentifierStack (I3IdentifierStack &stack)
 Sets the identifier stack.
I3IdentifiergetIdentifier ()
 Returns the identifier.
const I3IdentifiergetIdentifier () const
 Returns the identifier.
simtime_t getInsertionTime () const
 Returns the insertion time.
void clear ()
I3IdentifierStackgetIdentifierStack ()
 Returns the insertion time.
const I3IdentifierStackgetIdentifierStack () const
 Returns the identifier stack.
int length () const

Protected Attributes

I3Identifier identifier
 Identifier to be matched.
I3IdentifierStack identifierStack
 Identifier stack.
simtime_t insertionTime
 Time in which the trigger was inserted into I3.

Friends

std::ostream & operator<< (std::ostream &os, const I3Trigger &t)
 String stream operator <<.

Detailed Description

Implementation of an Internet Indirection Infrastructure trigger.

An I3Trigger is composed of an I3Identifier and a I3IdentifierStack (a stack of I3SubIdentifier). In the most basic case, the subidentifier stack contains a single I3IPAddress. When a packet is matched to a trigger, it is sent to the first valid subidentifier found - the rest is passed to the application. If none is found, the packet is dropped.

Author
Antonio Zea
See Also
I3, I3Identifier, I3IdentifierStack, I3SubIdentifier

Definition at line 43 of file I3Trigger.h.

Constructor & Destructor Documentation

I3Trigger::I3Trigger ( )

Constructor.

Definition at line 25 of file I3Trigger.cc.

:
{
}

Member Function Documentation

void I3Trigger::clear ( )

Definition at line 82 of file I3Trigger.cc.

Referenced by I3::sendPacket().

int I3Trigger::compareTo ( const I3Trigger t) const

Comparison function.

Parameters
tTrigger to compare to

Definition at line 30 of file I3Trigger.cc.

Referenced by operator<(), operator==(), and operator>().

{
return (cmp != 0) ? cmp : identifierStack.compareTo(t.identifierStack);
}
I3Identifier & I3Trigger::getIdentifier ( )

Returns the identifier.

Returns
Identifier stack

Definition at line 67 of file I3Trigger.cc.

Referenced by I3Triggers::deliver(), I3::deliver(), I3::handleUDPMessage(), I3::insertTrigger(), and I3::removeTrigger().

{
return identifier;
}
const I3Identifier & I3Trigger::getIdentifier ( ) const

Returns the identifier.

Returns
A const reference to the identifier

Definition at line 72 of file I3Trigger.cc.

{
return identifier;
}
I3IdentifierStack & I3Trigger::getIdentifierStack ( )

Returns the insertion time.

Returns
Insertion time

Definition at line 88 of file I3Trigger.cc.

Referenced by I3TRTClient::handleTimerEvent(), I3::insertTrigger(), and I3BaseApp::insertTrigger().

{
}
const I3IdentifierStack & I3Trigger::getIdentifierStack ( ) const

Returns the identifier stack.

Returns
A const reference to the identifier stack

Definition at line 93 of file I3Trigger.cc.

{
}
simtime_t I3Trigger::getInsertionTime ( ) const

Returns the insertion time.

Returns
Insertion time

Definition at line 77 of file I3Trigger.cc.

{
return insertionTime;
}
int I3Trigger::length ( ) const

Definition at line 98 of file I3Trigger.cc.

{
/* insertionTime is an internal variable and doesn't count as part of the message */
}
bool I3Trigger::operator< ( const I3Trigger t) const

"Less than" comparison function

Parameters
tTrigger to compare to

Definition at line 36 of file I3Trigger.cc.

{
return compareTo(t) < 0;
}
bool I3Trigger::operator== ( const I3Trigger t) const

"Equals" comparison function

Parameters
tTrigger to compare to

Definition at line 46 of file I3Trigger.cc.

{
return compareTo(t) == 0;
}
bool I3Trigger::operator> ( const I3Trigger t) const

"Greater than" comparison function

Parameters
tTrigger to compare to

Definition at line 41 of file I3Trigger.cc.

{
return compareTo(t) > 0;
}
void I3Trigger::setIdentifier ( const I3Identifier id)

Sets the identifier.

Parameters
idIdentifier to set.

Definition at line 52 of file I3Trigger.cc.

Referenced by I3TRTClient::handleTimerEvent(), I3BaseApp::insertTrigger(), and I3BaseApp::removeTrigger().

{
identifier = id;
}
void I3Trigger::setIdentifierStack ( I3IdentifierStack stack)

Sets the identifier stack.

Parameters
stackInsertion time

Definition at line 62 of file I3Trigger.cc.

{
identifierStack = stack;
}
void I3Trigger::setInsertionTime ( simtime_t  time)

Sets the insertion time.

Parameters
timeInsertion time

Definition at line 57 of file I3Trigger.cc.

Referenced by I3::insertTrigger().

{
insertionTime = time;
}

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const I3Trigger t 
)
friend

String stream operator <<.

Parameters
osOutput string stream
tTrigger to be output
Returns
os parameter

Definition at line 103 of file I3Trigger.cc.

{
os << "(" << t.identifier << ", {" << t.identifierStack << "})";
return os;
}

Member Data Documentation

I3Identifier I3Trigger::identifier
protected

Identifier to be matched.

Definition at line 148 of file I3Trigger.h.

Referenced by clear(), compareTo(), getIdentifier(), length(), operator<<(), and setIdentifier().

I3IdentifierStack I3Trigger::identifierStack
protected

Identifier stack.

Definition at line 151 of file I3Trigger.h.

Referenced by clear(), compareTo(), getIdentifierStack(), length(), operator<<(), and setIdentifierStack().

simtime_t I3Trigger::insertionTime
protected

Time in which the trigger was inserted into I3.

Definition at line 154 of file I3Trigger.h.

Referenced by getInsertionTime(), and setInsertionTime().


The documentation for this class was generated from the following files: