39 pzStateName_(pzStateName){}
49 "NEMLayer invalid %s transition in %s state",
60 "NEMLayer invalid %s transition in %s state",
70 "NEMLayer invalid %s transition in %s state",
80 "NEMLayer invalid %s transition in %s state",
90 "NEMLayer invalid %s transition in %s state",
101 "NEMLayer invalid %s transition in %s state",
112 "NEMLayer %s not valid in %s state",
113 "processConfigurationUpdate",
123 "NEMLayer %s not valid in %s state",
124 "processDownstreamControl",
135 "NEMLayer %s not valid in %s state",
136 "processDownstreamPacket",
147 "NEMLayer %s not valid in %s state",
148 "processUpstreamPacket",
158 "NEMLayer %s not valid in %s state",
159 "processUpstreamControl",
170 "NEMLayer %s not valid in %s state",
186 "NEMLayer %s not valid in %s state",
std::string Serialization
A Packet class that allows upstream processing to strip layer headers as the packet travels up the st...
virtual void processEvent(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, const EventId &id, const Serialization &serialization)
virtual void processTimedEvent(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, TimerEventId eventId, const TimePoint &expireTime, const TimePoint &scheduleTime, const TimePoint &fireTime, const void *arg)
The Registrar interface provides access to all of the emulator registrars.
virtual void handleStop(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer)
virtual void processDownstreamControl(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, const ControlMessages &msgs)
virtual void handleConfigure(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, const ConfigurationUpdate &update)
std::list< const ControlMessage * > ControlMessages
void changeState(NEMLayerState *pState)
NEMLayerState(const char *pzStateName)
void changeState(NEMStatefulLayer *pStatefulLayer, NEMLayerState *pState)
Base class for NEMLayer containers. Builders construct NEMLayer objects to contain derived instances ...
virtual void handleDestroy(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer)
std::string getStateName() const
Specialized packet the allows downstream processing to add layer specific headers as the packet trave...
virtual void handlePostStart(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer)
virtual void processUpstreamPacket(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, UpstreamPacket &pkt, const ControlMessages &msgs)
const char * pzStateName_
Encapsulated behavior associated with an NEMLayer depending on the layer's current context...
std::vector< ConfigurationNameAnyValues > ConfigurationUpdate
virtual void processConfiguration(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, const ConfigurationUpdate &update)
A layer stack that enforces component state transition rules. The stateful layer is not a fully funct...
Clock::time_point TimePoint
virtual ~NEMLayerState()=0
#define LOGGER_STANDARD_LOGGING(logger, level, fmt, args...)
static LogService * instance()
virtual void processDownstreamPacket(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, DownstreamPacket &pkt, const ControlMessages &msgs)
virtual void processUpstreamControl(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, const ControlMessages &msgs)
virtual void handleStart(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer)
virtual void handleInitialize(NEMStatefulLayer *pStatefulLayer, NEMLayer *pLayer, Registrar ®istrar)