Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ImHerePacket Class Reference

contains, in this order:
 Discovery ID number: 4 bytes
 Version Number: 4 bits 
 Capabilities: 2 bits (1 bit: behind a firewall, 1 bit: trusted server, 1 bit: IPv4/IPv6) 
 Reserved for future use: 1 bit
 Port Number: 2 bytes 
 IP address: 16 bytes 
 
. More...

#include <ImHerePacket.h>

Inheritance diagram for ImHerePacket::

NpPacket Packet BasicObject List of all members.

Public Methods

 ImHerePacket ()
 Create an ImHere packet to send to other nodes. More...

virtual ~ImHerePacket ()
 ImHerePacket (unsigned char *rawData)
 Creates an ImHere packet from raw data received on a socket. More...

unsigned int getId ()
 return the ID associated with this packet. More...

void setId (unsigned int id)
 Set the Id associated with this packet. More...

unsigned short getVersionNumber ()
 Return the version number of this packet. More...

void setVersionNumber (unsigned short versionNumber)
bool isNatted ()
void setIsNatted (bool)
bool isFirewalled ()
void setIsFirewalled (bool)
bool isTrusted ()
void setIsTrusted (bool)
unsigned short getPort ()
void setPort (unsigned short port)
IpAddress getIp ()
void setIp (IpAddress ip)
virtual unsigned char * getRawData ()
 This is called right before the data is sent over the wire. More...

virtual void toStream (std::ostream &)
 Gets the length of the whole packet and makes sure the length makes sense. More...


Private Attributes

unsigned int m_id
 ID of the discovery packet that requested this packet (needed for routing it back). More...

unsigned short m_versionNumber
 version number of the network protocol for this node. More...

bool m_isFirewalled
 True if this node is firewalled. More...

bool m_isTrusted
 True if this node is trusted. More...

bool m_isNatted
 True if this node is NATed. More...

unsigned short m_port
 The listening ports on the node. More...

IpAddress m_ip
 IP address of the node. More...


Detailed Description

contains, in this order:
 Discovery ID number: 4 bytes
 Version Number: 4 bits 
 Capabilities: 2 bits (1 bit: behind a firewall, 1 bit: trusted server, 1 bit: IPv4/IPv6) 
 Reserved for future use: 1 bit
 Port Number: 2 bytes 
 IP address: 16 bytes 
 
.

Definition at line 6 of file ImHerePacket.h.


Constructor & Destructor Documentation

ImHerePacket::ImHerePacket
 

Create an ImHere packet to send to other nodes.

Definition at line 20 of file ImHerePacket.cpp.

virtual ImHerePacket::~ImHerePacket [inline, virtual]
 

Definition at line 9 of file ImHerePacket.h.

ImHerePacket::ImHerePacket unsigned char * rawData
 

Creates an ImHere packet from raw data received on a socket.

Definition at line 50 of file ImHerePacket.cpp.


Member Function Documentation

unsigned int ImHerePacket::getId
 

return the ID associated with this packet.

Definition at line 134 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

IpAddress ImHerePacket::getIp
 

Definition at line 200 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

unsigned short ImHerePacket::getPort
 

Definition at line 212 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

unsigned char * ImHerePacket::getRawData [virtual]
 

This is called right before the data is sent over the wire.

Reimplemented from NpPacket.

Definition at line 93 of file ImHerePacket.cpp.

unsigned short ImHerePacket::getVersionNumber
 

Return the version number of this packet.

Reimplemented from NpPacket.

Definition at line 152 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

bool ImHerePacket::isFirewalled
 

Definition at line 176 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

bool ImHerePacket::isNatted
 

Definition at line 164 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

bool ImHerePacket::isTrusted
 

Definition at line 188 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleImHerePacket(), and toStream().

void ImHerePacket::setId unsigned int id
 

Set the Id associated with this packet.

Definition at line 143 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleDiscoveryPacket().

void ImHerePacket::setIp IpAddress ip
 

Definition at line 206 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleDiscoveryPacket().

void ImHerePacket::setIsFirewalled bool value
 

Definition at line 182 of file ImHerePacket.cpp.

void ImHerePacket::setIsNatted bool value
 

Definition at line 170 of file ImHerePacket.cpp.

void ImHerePacket::setIsTrusted bool value
 

Definition at line 194 of file ImHerePacket.cpp.

void ImHerePacket::setPort unsigned short port
 

Definition at line 218 of file ImHerePacket.cpp.

Referenced by NetworkLayer::handleDiscoveryPacket().

void ImHerePacket::setVersionNumber unsigned short versionNumber
 

Definition at line 158 of file ImHerePacket.cpp.

void ImHerePacket::toStream std::ostream & out [virtual]
 

Gets the length of the whole packet and makes sure the length makes sense.

Returns:
< 0 if the length is invalid

Reimplemented from NpPacket.

Definition at line 224 of file ImHerePacket.cpp.


Member Data Documentation

unsigned int ImHerePacket::m_id [private]
 

ID of the discovery packet that requested this packet (needed for routing it back).

Definition at line 55 of file ImHerePacket.h.

IpAddress ImHerePacket::m_ip [private]
 

IP address of the node.

Definition at line 73 of file ImHerePacket.h.

bool ImHerePacket::m_isFirewalled [private]
 

True if this node is firewalled.

Definition at line 61 of file ImHerePacket.h.

bool ImHerePacket::m_isNatted [private]
 

True if this node is NATed.

Definition at line 67 of file ImHerePacket.h.

bool ImHerePacket::m_isTrusted [private]
 

True if this node is trusted.

Definition at line 64 of file ImHerePacket.h.

unsigned short ImHerePacket::m_port [private]
 

The listening ports on the node.

Definition at line 70 of file ImHerePacket.h.

unsigned short ImHerePacket::m_versionNumber [private]
 

version number of the network protocol for this node.

Reimplemented from NpPacket.

Definition at line 58 of file ImHerePacket.h.


The documentation for this class was generated from the following files:
Generated at Thu Jul 11 13:31:57 2002 for Peekabooty by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001