12#include "EnigmaTypes.hpp"
Class representing a box of rotors in the Enigma machine.
void updateRotors()
Updates the positions of the rotors.
RotorBox(RotorBox &&)=default
RotorBox(const RotorBox &)=delete
void initTransformers(const std::vector< RotorConfig > &rotors, const ReflectorConfig &reflector)
Initializes the transformer vector with rotors and a reflector.
RotorBox & operator=(const RotorBox &)=delete
std::vector< AlphabetIndex > rotorPositions
void registerObserver(IEnigmaObserver *observer)
Registers an observer to receive notifications.
std::vector< IEnigmaObserver * > observers
void printTransformers() const
Prints the types of transformers in the transformer vector. This function iterates through the transf...
std::vector< std::unique_ptr< Transformer > > transformers
AlphabetIndex keyTransform(AlphabetIndex input)
Transforms the input key through the rotor box.
void removeObserver(IEnigmaObserver *observer)
Removes an observer.
RotorBox & operator=(RotorBox &&)=default
void setLogger(ILogger *logger)
Sets the logger for the rotor box.
Interface for observing Enigma Machine events. Implement this interface to receive notifications abou...
Configuration structure for a Reflector.