TorEvents Class Reference

#include <torevents.h>

List of all members.

Public Types

enum  TorEvent {
  Unknown, Bandwidth, LogDebug, LogInfo,
  LogNotice, LogWarn, LogError, CircuitStatus,
  StreamStatus, OrConnStatus, NewDescriptor
}

Public Member Functions

 TorEvents ()
void add (TorEvent event, QObject *obj)
void remove (TorEvent event, QObject *obj)
bool contains (TorEvent event)
QList< TorEventeventList ()
void handleEvent (ControlReply reply)
void dispatch (TorEvent e, QEvent *event)

Static Public Member Functions

static QString toString (TorEvents::TorEvent e)
static TorEvent toTorEvent (LogEvent::Severity severity)

Private Member Functions

void handleBandwidthUpdate (ReplyLine line)
void handleCircuitStatus (ReplyLine line)
void handleStreamStatus (ReplyLine line)
void handleLogMessage (ReplyLine line)
void handleOrConnStatus (ReplyLine line)
void handleNewDescriptor (ReplyLine line)

Static Private Member Functions

static TorEvent parseEventType (ReplyLine line)
static TorEvent toTorEvent (QString event)

Private Attributes

QMultiHash< TorEvent, QObject * > _eventList


Detailed Description

Definition at line 46 of file torevents.h.


Member Enumeration Documentation

enum TorEvents::TorEvent

Asynchronous events sent from Tor to the controller

Enumerator:
Unknown 
Bandwidth 
LogDebug 
LogInfo 
LogNotice 
LogWarn 
LogError 
CircuitStatus 
StreamStatus 
OrConnStatus 
NewDescriptor 

Definition at line 52 of file torevents.h.


Constructor & Destructor Documentation

TorEvents::TorEvents (  ) 

Default Constructor

Definition at line 36 of file torevents.cpp.


Member Function Documentation

void TorEvents::add ( TorEvent  event,
QObject *  obj 
)

Adds an event and interested object to the event list

Definition at line 42 of file torevents.cpp.

References _eventList.

Referenced by TorControl::setEvent().

void TorEvents::remove ( TorEvent  event,
QObject *  obj 
)

Removes an event and object from the event list

Definition at line 51 of file torevents.cpp.

References _eventList, and i().

Referenced by TorControl::setEvent().

bool TorEvents::contains ( TorEvent  event  ) 

Returns true if an event has any registered handlers

Definition at line 64 of file torevents.cpp.

References _eventList.

QList< TorEvents::TorEvent > TorEvents::eventList (  ) 

Returns the list of events in which we're interested

Definition at line 74 of file torevents.cpp.

References _eventList.

Referenced by TorControl::setEvents().

void TorEvents::handleEvent ( ControlReply  reply  ) 

Parses an event message and emits the proper signal

Definition at line 173 of file torevents.cpp.

References Bandwidth, CircuitStatus, ControlReply::getLines(), handleBandwidthUpdate(), handleCircuitStatus(), handleLogMessage(), handleNewDescriptor(), handleOrConnStatus(), handleStreamStatus(), LogDebug, LogError, LogInfo, LogNotice, LogWarn, NewDescriptor, OrConnStatus, parseEventType(), and StreamStatus.

void TorEvents::dispatch ( TorEvent  e,
QEvent *  event 
)

Dispatches a given event to all its handler targets.

Definition at line 81 of file torevents.cpp.

References _eventList.

Referenced by handleBandwidthUpdate(), handleCircuitStatus(), handleLogMessage(), handleNewDescriptor(), handleOrConnStatus(), handleStreamStatus(), and TorControl::onLogStdout().

QString TorEvents::toString ( TorEvents::TorEvent  e  )  [static]

Converts an Event to a string

Definition at line 90 of file torevents.cpp.

References Bandwidth, CircuitStatus, LogDebug, LogError, LogInfo, LogNotice, LogWarn, NewDescriptor, OrConnStatus, and StreamStatus.

Referenced by TorControl::setEvents().

TorEvents::TorEvent TorEvents::toTorEvent ( LogEvent::Severity  severity  )  [static]

Converts a log severity to an event

Definition at line 111 of file torevents.cpp.

References LogEvent::Debug, LogEvent::Error, LogEvent::Info, LogDebug, LogError, LogInfo, LogNotice, LogWarn, LogEvent::Notice, Unknown, and LogEvent::Warn.

Referenced by handleLogMessage(), TorControl::onLogStdout(), and parseEventType().

TorEvents::TorEvent TorEvents::parseEventType ( ReplyLine  line  )  [static, private]

Parses the event type from the event message

Definition at line 162 of file torevents.cpp.

References ReplyLine::getMessage(), i(), and toTorEvent().

Referenced by handleEvent().

TorEvents::TorEvent TorEvents::toTorEvent ( QString  event  )  [static, private]

Converts a string to an Event

Definition at line 127 of file torevents.cpp.

References Bandwidth, CircuitStatus, LogDebug, LogError, LogInfo, LogNotice, LogWarn, NewDescriptor, OrConnStatus, StreamStatus, and Unknown.

void TorEvents::handleBandwidthUpdate ( ReplyLine  line  )  [private]

Handle a bandwidth update event

Definition at line 202 of file torevents.cpp.

References Bandwidth, CustomEventType::BandwidthEvent, dispatch(), and ReplyLine::getMessage().

Referenced by handleEvent().

void TorEvents::handleCircuitStatus ( ReplyLine  line  )  [private]

Handle a circuit status event

Definition at line 226 of file torevents.cpp.

References CustomEventType::CircuitEvent, CircuitStatus, dispatch(), Circuit::fromString(), ReplyLine::getMessage(), and i().

Referenced by handleEvent().

void TorEvents::handleStreamStatus ( ReplyLine  line  )  [private]

Handle a stream status event

Definition at line 253 of file torevents.cpp.

References dispatch(), Stream::fromString(), ReplyLine::getMessage(), i(), CustomEventType::StreamEvent, and StreamStatus.

Referenced by handleEvent().

void TorEvents::handleLogMessage ( ReplyLine  line  )  [private]

Handle a log message event

Definition at line 272 of file torevents.cpp.

References dispatch(), ReplyLine::getData(), ReplyLine::getMessage(), i(), CustomEventType::LogEvent, LogEvent::toSeverity(), and toTorEvent().

Referenced by handleEvent().

void TorEvents::handleOrConnStatus ( ReplyLine  line  )  [private]

Handle an OR connection status event.

Definition at line 299 of file torevents.cpp.

References dispatch(), ReplyLine::getMessage(), CustomEventType::OrConnEvent, OrConnStatus, and OrConnEvent::toStatus().

Referenced by handleEvent().

void TorEvents::handleNewDescriptor ( ReplyLine  line  )  [private]

Handles a new list of descriptors event.

Definition at line 314 of file torevents.cpp.

References dispatch(), ReplyLine::getMessage(), NewDescriptor, and CustomEventType::NewDescriptorEvent.

Referenced by handleEvent().


Member Data Documentation

QMultiHash<TorEvent, QObject*> TorEvents::_eventList [private]

Stores a mapping of Tor events to a list of the objects interested in hearing about those events.

Definition at line 89 of file torevents.h.

Referenced by add(), contains(), dispatch(), eventList(), and remove().


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