In file /home/eternity/Source/Mix/Chopper/H/chopper.h:

class Chopper : public Runable, public MixOffspring, public Shutdownable

Messages chopper

Inheritance:

Chopper < Runable < Debugable

Chopper < MixOffspring

Chopper < Shutdownable


Public Methods

Chopper::Chopper (Mix * parent, LogFile * chopperLogFile)
Mix chopper constructor
list GMessage * > Chopper::CreateChunks (GMessage * parameters)
Create chunks from message
void* Chopper::Run (void *)
Mix chopper Run() method
void Chopper::Shutdown ()
Prepare for clean shutdown

Public

methods

Protected

attributes

Inherited from Runable:

Public Methods

void Runable::MaskAllSignals()
Runable::Runable(LogFile * logFile)

Inherited from Debugable:

Public Methods

string* Debugable::CreateString(char *firstStr, int firstInt, int secondInt)
Debugable::Debugable(LogFile * debugLogFile)
int Debugable::SetDebugOptions(int newLogOptions)
void Debugable::SetLogFile(LogFile *aLogFile)
void Debugable::WriteString(LogLevel debugLevel, char * format, ...)
Debugable::~Debugable()

Inherited from MixOffspring:

Public Methods

MixOffspring::MixOffspring(Mix * mix)

Inherited from Shutdownable:

Public Methods

Shutdownable::Shutdownable(Killer * killer)

Documentation

Messages chopper. Chops large messages into uniform chunks that can be untraceably sent across network.
attributes

methods

Chopper::Chopper(Mix * parent, LogFile * chopperLogFile)
Mix chopper constructor. Initializes lastMessageID with a random number so that probability of conflicting Message ID's is minimized. This Message ID is later used for marking chunks of one message as that they belong together. It also initializes its parent classes.
Parameters:
parent - Pointer to Mix objects.
chopperLogFile - Log file pointer.
Author:
Venca
See Also:
~Chopper()

list GMessage * > Chopper::CreateChunks(GMessage * parameters)
Create chunks from message. Chops a message.
[Onion|Mix]:
AddHops:
Data:
and splits it into multiple chunks of the form:
[Onion|Mix] 
AddHops
Data:
Message-ID:
Chunk-ID:
Total-Chunks:
Message-Length:
Data:
Returns:
list of chunks of the structure:
[Onion|Mix] 
AddHops
Data:
Message-ID:
Chunk-ID:
Total-Chunks:
Message-Length:
Data:
Parameters:
parameters - The GMessage has the following structure:
[Onion|Mix]:
AddHops:
Data:

Author:
Venca
See Also:
Linker, StoreChunk(), traffic analysis discussion

void* Chopper::Run(void *)
Mix chopper Run() method. This methods processes all messages from the incoming queue. If the message is for local Mix then it is passed to Majordomo for further processing. If it is destined to be sent over the network then the message has to be prepared for transmission. That means splitting it into uniform chunks so that they cannot be distinguished and then wraping some additional peels onto its onion - in this way the sender is protected against traffic analysis too.
Author:
Venca
See Also:
MessageCreator, Linker, traffic analysis discussion

void Chopper::Shutdown()
Prepare for clean shutdown. This method should implement all the tasks necessary for preparation for a clean shutdown like saving inconsistent data to disk etc. Now it is empty as Chopper is completely stateless as the loss of some partially received messages is not fatal to the system.
Author:
Venca
See Also:
Shutdownable, Killer


This class has no child classes.
Author:
Venca
See Also:
Linker

alphabetic index hierarchy of classes


generated by doc++