Peach :: Generators :: repeater :: Repeater :: Class Repeater
[hide private]

Class Repeater

source code


Will repeat a value (generated by a Generator) by round count. Can be used for basic buffer overflow testing.

Example:

>>> gen = Repeater(None, String("A"), 3)
>>> gen.getValue()
A
>>> gen.next()
>>> gen.getValue()
AA
>>> gen.next()
>>> gen.getValue()
AAA

Example:

>>> gen = Repeater(None, Static("Peach "), 5, 3)
>>> gen.getValue()
Peach
>>> gen.next()
>>> gen.getValue()
Peach Peach Peach Peach Peach
>>> gen.next()
>>> gen.getValue()
Peach Peach Peach Peach Peach Peach Peach Peach Peach Peach
Instance Methods [hide private]
 
__init__(self, group, generator, incrementor=1, maxSteps=-1, startStep=None)
Base constructor, please call me!
source code
 
next(self)
Next value.
source code
string
getRawValue(self)
Return raw value w/o passing through transformer if set.
source code
Generator
getGenerator(self)
Get Generator who's value we will repeat.
source code
 
setGenerator(self, generator)
Set Generator who's value we will repeat.
source code
 
reset(self)
Called to reset the generator to its initial state.
source code

Inherited from generator.Generator: __iter__, getGroup, getName, getTransformer, getValue, identity, setGroup, setName, setTransformer

Static Methods [hide private]
 
unittest() source code
Method Details [hide private]

__init__(self, group, generator, incrementor=1, maxSteps=-1, startStep=None)
(Constructor)

source code 

Base constructor, please call me!

Parameters:
  • group (Group) - Group this generator belongs to
  • generator (Generator) - Generator to repeate
  • incrementor (number) - Multiplier against round count
  • maxSteps (number) - Maximum repeates
  • startSteps (number) - Start at this step
Overrides: generator.Generator.__init__

next(self)

source code 

Next value. OVERRIDE

From Python docs on next():

The intention of the protocol is that once an iterator's next() method raises StopIteration, it will continue to do so on subsequent calls. Implementations that do not obey this property are deemed broken. (This constraint was added in Python 2.3; in Python 2.2, various iterators are broken according to this rule.)

For Generators, please use the GeneratorCompleted exception instead of StopIteration (its a subclass).

Overrides: generator.Generator.next
(inherited documentation)

getRawValue(self)

source code 

Return raw value w/o passing through transformer if set. OVERRIDE

Returns: string
Data before transformations
Overrides: generator.Generator.getRawValue
(inherited documentation)

getGenerator(self)

source code 

Get Generator who's value we will repeat.

Returns: Generator
Generator we are repeating

setGenerator(self, generator)

source code 

Set Generator who's value we will repeat.

Parameters:
  • generator (Generator) - Generator to repeate

reset(self)

source code 

Called to reset the generator to its initial state. OVERRIDE

Overrides: generator.Generator.reset
(inherited documentation)