Package datk :: Package core :: Module algs :: Class AsyncLCR
[hide private]
[frames] | no frames]

Class AsyncLCR

source code

         distalgs.Algorithm --+    
                              |    
distalgs.Asynchronous_Algorithm --+
                                  |
                                 AsyncLCR

The LeLann, Chang and Roberts algorithm for Leader Election in an Asynchronous Ring Network

Each Process sends its identifier around the ring. When a Process receives incoming identifier(s), it compares their largest to its own. If that incoming identifier is greater than its own, it keeps passing that identifier; if it is less than its own, it discards all the incoming identifiers; if it is equal to its own, the Process declares itself the leader. When a Process has declared itself Leader, it sends a Leader Declaration message around the ring, and halts As it goes around the ring, each other Process outputs 'non-leader', and halts.

Requires:

Effects:

Nested Classes [hide private]
  Leader_Declaration
Instance Methods [hide private]
 
msgs_i(self, p, verbose=False)
Determines what messages a Process, p, will send.
source code
 
trans_i(self, p, verbose=False)
Determines what state transition a Process, p, will perform, having received messages, msgs
source code
 
cleanup_i(self, p)
Determines what final state transition a Process, p, will perform, after the algorithm terminates.
source code

Inherited from distalgs.Asynchronous_Algorithm: run, run_process

Inherited from distalgs.Algorithm: __call__, __init__, cleanup, count_msg, delete, get, halt, halt_i, has, increment, output, print_algorithm_terminated, set

Class Variables [hide private]

Inherited from distalgs.Algorithm: DEFAULT, DEFAULT_PARAMS, QUIET, SILENT, VERBOSE

Method Details [hide private]

msgs_i(self, p, verbose=False)

source code 

Determines what messages a Process, p, will send.

Overrides: distalgs.Algorithm.msgs_i
(inherited documentation)

trans_i(self, p, verbose=False)

source code 

Determines what state transition a Process, p, will perform, having received messages, msgs

Overrides: distalgs.Algorithm.trans_i
(inherited documentation)

cleanup_i(self, p)

source code 

Determines what final state transition a Process, p, will perform, after the algorithm terminates.

Overrides: distalgs.Algorithm.cleanup_i
(inherited documentation)