Vidalia  0.2.21
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
RouterDescriptor Class Reference

#include <RouterDescriptor.h>

Public Types

enum  RouterStatusEnum { Online, Hibernating, Offline }
 

Public Member Functions

 RouterDescriptor (bool microdesc=false)
 
 RouterDescriptor (QStringList descriptor, bool microdesc=false)
 
QString name () const
 
QHostAddress ip () const
 
quint16 orPort () const
 
quint16 dirPort () const
 
QString id () const
 
QString platform () const
 
quint64 uptime () const
 
QString contact () const
 
QDateTime published () const
 
QString fingerprint () const
 
quint64 averageBandwidth () const
 
quint64 burstBandwidth () const
 
quint64 observedBandwidth () const
 
bool online () const
 
bool offline () const
 
bool hibernating () const
 
bool isEmpty ()
 
QString status ()
 
QString location () const
 
void setLocation (QString location)
 
void setOffline (bool offline)
 
QString onionKey () const
 
QString family () const
 
QString exitPolicy () const
 
void appendRouterStatusInfo (const RouterStatus &rs)
 

Private Member Functions

void parseDescriptor (QStringList descriptor)
 

Private Attributes

RouterStatusEnum _status
 
QString _id
 
QString _name
 
QString _fingerprint
 
QString _platform
 
QString _contact
 
QHostAddress _ip
 
quint16 _orPort
 
quint16 _dirPort
 
QDateTime _published
 
quint64 _uptime
 
quint64 _avgBandwidth
 
quint64 _burstBandwidth
 
quint64 _observedBandwidth
 
QString _location
 
bool _microdesc
 
QString _onionKey
 
QString _exitPolicy
 
QString _family
 

Detailed Description

Definition at line 27 of file RouterDescriptor.h.

Member Enumeration Documentation

Possible router states.

Enumerator:
Online 

Router is online and reachable.

Hibernating 

Router is currently hibernating.

Offline 

Router is unresponsive.

Definition at line 33 of file RouterDescriptor.h.

Constructor & Destructor Documentation

RouterDescriptor::RouterDescriptor ( bool  microdesc = false)
inline

Default constructor.

Definition at line 40 of file RouterDescriptor.h.

RouterDescriptor::RouterDescriptor ( QStringList  descriptor,
bool  microdesc = false 
)

Constructor.

Constructor. Just assigns the ID and determines whether the router is responsive or not based on the presence of a "!" at the start of the ID. See tor-spec.txt for details.

Definition at line 24 of file RouterDescriptor.cpp.

References _status, Online, and parseDescriptor().

Member Function Documentation

void RouterDescriptor::appendRouterStatusInfo ( const RouterStatus rs)
quint64 RouterDescriptor::averageBandwidth ( ) const
inline

Returns the average bandwidth for this router.

Definition at line 65 of file RouterDescriptor.h.

References _avgBandwidth.

Referenced by TorMapWidget::addRouter(), RouterDescriptorView::display(), and RouterListItem::update().

quint64 RouterDescriptor::burstBandwidth ( ) const
inline

Returns the burst bandwidth for this router.

Definition at line 67 of file RouterDescriptor.h.

References _burstBandwidth.

Referenced by TorMapWidget::addRouter(), RouterDescriptorView::display(), and RouterListItem::update().

QString RouterDescriptor::contact ( ) const
inline

Returns the router's contact information.

Definition at line 59 of file RouterDescriptor.h.

References _contact.

Referenced by RouterInfoDialog::setRouterInfo().

quint16 RouterDescriptor::dirPort ( ) const
inline

Returns the router's DirPort.

Definition at line 51 of file RouterDescriptor.h.

References _dirPort.

QString RouterDescriptor::exitPolicy ( ) const
inline

Returns this router's exit policy

Definition at line 96 of file RouterDescriptor.h.

References _exitPolicy.

QString RouterDescriptor::family ( ) const
inline

Returns this router's family

Definition at line 94 of file RouterDescriptor.h.

References _family.

QString RouterDescriptor::fingerprint ( ) const
inline

Returns the fingerprint for this router.

Definition at line 63 of file RouterDescriptor.h.

References _fingerprint.

bool RouterDescriptor::hibernating ( ) const
inline

Returns true if this router is hibernating.

Definition at line 75 of file RouterDescriptor.h.

References _status, and Hibernating.

Referenced by RouterInfoDialog::setRouterInfo(), and RouterListItem::update().

QString RouterDescriptor::id ( ) const
inline

Returns the router's ID.

Definition at line 53 of file RouterDescriptor.h.

References _id.

Referenced by TorMapImageView::addRouter(), TorMapWidget::addRouter(), RouterListWidget::addRouter(), and RouterListItem::id().

QHostAddress RouterDescriptor::ip ( ) const
inline

Returns the router's IP address.

Definition at line 47 of file RouterDescriptor.h.

References _ip.

Referenced by NetViewer::addRouter(), RouterDescriptorView::display(), and RouterInfoDialog::setRouterInfo().

bool RouterDescriptor::isEmpty ( )
inline

Returns true if the router has neither a nickname or an ID.

Definition at line 77 of file RouterDescriptor.h.

References _id, and _name.

Referenced by RouterDescriptorView::display(), NetViewer::loadNetworkStatus(), and NetViewer::newDescriptors().

QString RouterDescriptor::location ( ) const
inline

Returns geographic location information for this router. Note that this information is NOT part of the Tor directory protocol, but can be determined out of band and set using setLocation().

Definition at line 84 of file RouterDescriptor.h.

References _location.

Referenced by RouterDescriptorView::display(), and setLocation().

QString RouterDescriptor::name ( ) const
inline
quint64 RouterDescriptor::observedBandwidth ( ) const
inline

Returns the observed bandwidth for this router.

Definition at line 69 of file RouterDescriptor.h.

References _observedBandwidth.

Referenced by TorMapWidget::addRouter(), RouterDescriptorView::display(), RouterInfoDialog::setRouterInfo(), and RouterListItem::update().

bool RouterDescriptor::offline ( ) const
inline

Returns true if this router is unresponsive.

Definition at line 73 of file RouterDescriptor.h.

References _status, and Offline.

Referenced by RouterDescriptorView::display(), and RouterListItem::update().

QString RouterDescriptor::onionKey ( ) const
inline

Microdescriptor Returns the onion key for this router

Definition at line 92 of file RouterDescriptor.h.

References _onionKey.

bool RouterDescriptor::online ( ) const
inline

Returns true if this router is online and responsive.

Definition at line 71 of file RouterDescriptor.h.

References _status, and Online.

quint16 RouterDescriptor::orPort ( ) const
inline

Returns the router's ORPort.

Definition at line 49 of file RouterDescriptor.h.

References _orPort.

void RouterDescriptor::parseDescriptor ( QStringList  descriptor)
private

Parses this router's descriptor for relevant information.

Definition at line 32 of file RouterDescriptor.cpp.

References _avgBandwidth, _burstBandwidth, _contact, _dirPort, _exitPolicy, _family, _fingerprint, _id, _ip, _microdesc, _name, _observedBandwidth, _onionKey, _orPort, _platform, _published, _status, _uptime, and Hibernating.

Referenced by RouterDescriptor().

QString RouterDescriptor::platform ( ) const
inline

Returns the platform on which this router is running.

Definition at line 55 of file RouterDescriptor.h.

References _platform.

Referenced by RouterDescriptorView::display(), RouterInfoDialog::setRouterInfo(), and RouterListItem::update().

QDateTime RouterDescriptor::published ( ) const
inline

Returns the date and time the router was published.

Definition at line 61 of file RouterDescriptor.h.

References _published.

Referenced by RouterDescriptorView::display(), and RouterInfoDialog::setRouterInfo().

void RouterDescriptor::setLocation ( QString  location)
inline

Sets geographic location information for this router.

Definition at line 86 of file RouterDescriptor.h.

References _location, and location().

Referenced by RouterListItem::setLocation().

void RouterDescriptor::setOffline ( bool  offline)
inline

Sets the descriptors status to Offline if offline is true.

Definition at line 88 of file RouterDescriptor.h.

References _status, Offline, and Online.

QString RouterDescriptor::status ( )

Returns a string representation of the status of this router.

Definition at line 91 of file RouterDescriptor.cpp.

References _status, Hibernating, and Online.

Referenced by RouterDescriptorView::display().

quint64 RouterDescriptor::uptime ( ) const
inline

Returns the length of time this router has been up.

Definition at line 57 of file RouterDescriptor.h.

References _uptime.

Referenced by RouterDescriptorView::display(), and RouterInfoDialog::setRouterInfo().

Member Data Documentation

quint64 RouterDescriptor::_avgBandwidth
private

Average bandwidth.

Definition at line 117 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), averageBandwidth(), and parseDescriptor().

quint64 RouterDescriptor::_burstBandwidth
private

Burst bandwidth.

Definition at line 118 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), burstBandwidth(), and parseDescriptor().

QString RouterDescriptor::_contact
private

Router operator contact information.

Definition at line 111 of file RouterDescriptor.h.

Referenced by contact(), and parseDescriptor().

quint16 RouterDescriptor::_dirPort
private

Router's DirPort.

Definition at line 114 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), dirPort(), and parseDescriptor().

QString RouterDescriptor::_exitPolicy
private

Router SSL key

Definition at line 125 of file RouterDescriptor.h.

Referenced by exitPolicy(), and parseDescriptor().

QString RouterDescriptor::_family
private

Exit policy

Definition at line 126 of file RouterDescriptor.h.

Referenced by family(), and parseDescriptor().

QString RouterDescriptor::_fingerprint
private

Router's fingerprint.

Definition at line 109 of file RouterDescriptor.h.

Referenced by fingerprint(), and parseDescriptor().

QString RouterDescriptor::_id
private

Router's descriptor ID.

Definition at line 107 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), id(), isEmpty(), and parseDescriptor().

QHostAddress RouterDescriptor::_ip
private

Router's IP address.

Definition at line 112 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), ip(), and parseDescriptor().

QString RouterDescriptor::_location
private

Geographic location information.

Definition at line 120 of file RouterDescriptor.h.

Referenced by location(), and setLocation().

bool RouterDescriptor::_microdesc
private

Microdescriptor info

Definition at line 123 of file RouterDescriptor.h.

Referenced by parseDescriptor().

QString RouterDescriptor::_name
private

The router's name.

Definition at line 108 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), isEmpty(), name(), and parseDescriptor().

quint64 RouterDescriptor::_observedBandwidth
private

Observed bandwidth.

Definition at line 119 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), observedBandwidth(), and parseDescriptor().

QString RouterDescriptor::_onionKey
private

Definition at line 124 of file RouterDescriptor.h.

Referenced by onionKey(), and parseDescriptor().

quint16 RouterDescriptor::_orPort
private

Router's ORPort.

Definition at line 113 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), orPort(), and parseDescriptor().

QString RouterDescriptor::_platform
private

Platform on which router is running.

Definition at line 110 of file RouterDescriptor.h.

Referenced by parseDescriptor(), and platform().

QDateTime RouterDescriptor::_published
private

Date router descriptor was published.

Definition at line 115 of file RouterDescriptor.h.

Referenced by appendRouterStatusInfo(), parseDescriptor(), and published().

RouterStatusEnum RouterDescriptor::_status
private

Availability status of this router.

Definition at line 106 of file RouterDescriptor.h.

Referenced by hibernating(), offline(), online(), parseDescriptor(), RouterDescriptor(), setOffline(), and status().

quint64 RouterDescriptor::_uptime
private

Time the router has been online.

Definition at line 116 of file RouterDescriptor.h.

Referenced by parseDescriptor(), and uptime().


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