NetViewer Class Reference

#include <netviewer.h>

Inheritance diagram for NetViewer:

VidaliaWindow List of all members.

Public Slots

void loadConnections ()
void addCircuit (Circuit circuit)
void clear ()

Public Member Functions

 NetViewer (QWidget *parent=0)

Protected Member Functions

void customEvent (QEvent *event)

Private Slots

void help ()
void refresh ()
void circuitSelected (Circuit circuit)
void resolved (int id, QList< GeoIp > geoips)
void routerSelected (RouterDescriptor router)
void gotConnected ()
void gotDisconnected ()
void resolve ()

Private Member Functions

void loadDescriptors (QStringList ids)
void addRouter (RouterDescriptor rd)
Circuit circuitPathIDs (Circuit circ)
Circuit circuitPathNames (Circuit circ)

Private Attributes

TorControl_torControl
QTimer _refreshTimer
TorMapWidget_map
GeoIpResolver _geoip
QList< QHostAddress > _resolveQueue
QHash< QString, QString > _resolveMap
QTimer _resolveQueueTimer
Ui::NetViewer ui

Detailed Description

Definition at line 44 of file netviewer.h.


Constructor & Destructor Documentation

NetViewer::NetViewer ( QWidget *  parent = 0  ) 

Default constructor

Definition at line 50 of file netviewer.cpp.

References _geoip, _map, _refreshTimer, _resolveQueueTimer, _torControl, circuitSelected(), TorEvents::CircuitStatus, CircuitListWidget::ConnectionColumn, CircuitListWidget::ConnectionColumnWidth, gotConnected(), gotDisconnected(), help(), TorEvents::NewDescriptor, refresh(), resolve(), resolved(), routerSelected(), TorControl::setEvent(), RouterListWidget::StatusColumn, RouterListWidget::StatusColumnWidth, TorEvents::StreamStatus, Vidalia::torControl(), and ui.


Member Function Documentation

void NetViewer::loadConnections (  )  [slot]

Loads a list of current circuits and streams.

Update the map

Definition at line 195 of file netviewer.cpp.

References _map, _torControl, addCircuit(), TorControl::getCircuits(), TorControl::getStreams(), and ui.

Referenced by refresh().

void NetViewer::addCircuit ( Circuit  circuit  )  [slot]

Adds a circuit to the list and the map

Definition at line 214 of file netviewer.cpp.

References _map, TorMapWidget::addCircuit(), circuitPathIDs(), circuitPathNames(), Circuit::hops(), Circuit::id(), and ui.

Referenced by customEvent(), and loadConnections().

void NetViewer::clear (  )  [slot]

Clears all known information

Definition at line 179 of file netviewer.cpp.

References _map, _resolveMap, _resolveQueue, TorMapWidget::clear(), and ui.

Referenced by gotDisconnected(), and refresh().

void NetViewer::customEvent ( QEvent *  event  )  [protected]

Called to deliver a NEWDESC event from Tor.

Update the map

Definition at line 133 of file netviewer.cpp.

References _map, addCircuit(), CircuitEvent::circuit(), CustomEventType::CircuitEvent, NewDescriptorEvent::descriptorIDs(), loadDescriptors(), CustomEventType::NewDescriptorEvent, StreamEvent::stream(), CustomEventType::StreamEvent, and ui.

void NetViewer::help (  )  [private, slot]

Called when the user selects the "Help" action on the toolbar.

Definition at line 227 of file netviewer.cpp.

References Vidalia::help().

Referenced by NetViewer().

void NetViewer::refresh (  )  [private, slot]

Called when the user selects the "Refresh" action on the toolbar

Definition at line 159 of file netviewer.cpp.

References _torControl, clear(), TorControl::getRouterIDList(), loadConnections(), loadDescriptors(), and ui.

Referenced by gotConnected(), and NetViewer().

void NetViewer::circuitSelected ( Circuit  circuit  )  [private, slot]

Called when the user selects a circuit on the circuit list

Definition at line 277 of file netviewer.cpp.

References _map, TorMapWidget::deselectAll(), Circuit::hops(), Circuit::id(), TorMapWidget::selectCircuit(), and ui.

Referenced by NetViewer().

void NetViewer::resolved ( int  id,
QList< GeoIp geoips 
) [private, slot]

Called when an IP has been resolved to geographic information.

Definition at line 322 of file netviewer.cpp.

References _map, _resolveMap, TorMapWidget::addCircuit(), TorMapWidget::addRouter(), circuitPathIDs(), Circuit::hops(), Circuit::id(), RouterListItem::id(), GeoIp::ip(), GeoIp::latitude(), GeoIp::longitude(), RouterListItem::setLocation(), GeoIp::toLocation(), and ui.

Referenced by NetViewer().

void NetViewer::routerSelected ( RouterDescriptor  router  )  [private, slot]

Called when the user selects a router in the list.

Definition at line 302 of file netviewer.cpp.

References _map, TorMapWidget::deselectAll(), RouterDescriptor::name(), TorMapWidget::selectRouter(), and ui.

Referenced by NetViewer().

void NetViewer::gotConnected (  )  [private, slot]

Handles when we get connected to Tor network

Definition at line 125 of file netviewer.cpp.

References _refreshTimer, and refresh().

Referenced by NetViewer().

void NetViewer::gotDisconnected (  )  [private, slot]

Handles when we get disconnected from Tor network

Definition at line 117 of file netviewer.cpp.

References _refreshTimer, and clear().

Referenced by NetViewer().

void NetViewer::resolve (  )  [private, slot]

Resolves IP addresses in the resolve queue to geographic information.

Definition at line 312 of file netviewer.cpp.

References _geoip, _resolveQueue, and GeoIpResolver::resolve().

Referenced by NetViewer().

void NetViewer::loadDescriptors ( QStringList  ids  )  [private]

Loads a list of router descriptors from the list of IDs.

Definition at line 234 of file netviewer.cpp.

References _torControl, addRouter(), TorControl::getDescriptorListById(), and RouterDescriptor::isEmpty().

Referenced by customEvent(), and refresh().

void NetViewer::addRouter ( RouterDescriptor  rd  )  [private]

Adds a router to our list of servers and retrieves geographic location information for the server.

Definition at line 250 of file netviewer.cpp.

References _resolveMap, _resolveQueue, _resolveQueueTimer, RouterDescriptor::id(), RouterDescriptor::ip(), RESOLVE_QUEUE_DELAY, and ui.

Referenced by circuitPathIDs(), circuitPathNames(), and loadDescriptors().

Circuit NetViewer::circuitPathIDs ( Circuit  circ  )  [private]

Convert all hops in circ's path to server identities. circ's status and circuit ID will be preserved.

Definition at line 360 of file netviewer.cpp.

References _torControl, addRouter(), RouterListItem::descriptor(), TorControl::getDescriptorByName(), TorControl::getTorVersion(), Circuit::hops(), Circuit::id(), RouterDescriptor::id(), RouterDescriptor::isEmpty(), Circuit::status(), and ui.

Referenced by addCircuit(), and resolved().

Circuit NetViewer::circuitPathNames ( Circuit  circ  )  [private]

Convert all hops in circ's path to server names. circ's status and circuit ID will be preserved.

Definition at line 403 of file netviewer.cpp.

References _torControl, addRouter(), TorControl::getDescriptorById(), Circuit::hops(), Circuit::id(), RouterDescriptor::isEmpty(), RouterDescriptor::name(), Circuit::status(), and ui.

Referenced by addCircuit().


Member Data Documentation

TorControl* NetViewer::_torControl [private]

TorControl object used to talk to Tor.

Definition at line 96 of file netviewer.h.

Referenced by circuitPathIDs(), circuitPathNames(), loadConnections(), loadDescriptors(), NetViewer(), and refresh().

QTimer NetViewer::_refreshTimer [private]

Timer that fires once an hour to update the router list.

Definition at line 98 of file netviewer.h.

Referenced by gotConnected(), gotDisconnected(), and NetViewer().

TorMapWidget* NetViewer::_map [private]

TorMapWidget that displays the map.

Definition at line 100 of file netviewer.h.

Referenced by addCircuit(), circuitSelected(), clear(), customEvent(), loadConnections(), NetViewer(), resolved(), and routerSelected().

GeoIpResolver NetViewer::_geoip [private]

GeoIpResolver used to geolocate routers by IP address.

Definition at line 102 of file netviewer.h.

Referenced by NetViewer(), and resolve().

QList<QHostAddress> NetViewer::_resolveQueue [private]

Queue for IPs pending resolution to geographic information.

Definition at line 104 of file netviewer.h.

Referenced by addRouter(), clear(), and resolve().

QHash<QString, QString> NetViewer::_resolveMap [private]

Maps pending GeoIP requests to server IDs.

Definition at line 106 of file netviewer.h.

Referenced by addRouter(), clear(), and resolved().

QTimer NetViewer::_resolveQueueTimer [private]

Timer used to delay GeoIP requests until we've received "a chunk" of them.

Definition at line 108 of file netviewer.h.

Referenced by addRouter(), and NetViewer().

Ui::NetViewer NetViewer::ui [private]

Qt Designer generated object

Definition at line 111 of file netviewer.h.

Referenced by addCircuit(), addRouter(), circuitPathIDs(), circuitPathNames(), circuitSelected(), clear(), customEvent(), loadConnections(), NetViewer(), refresh(), resolved(), and routerSelected().


The documentation for this class was generated from the following files:
Generated on Mon Oct 23 20:08:16 2006 for Vidalia by  doxygen 1.5.0