34 #ifndef EMANENEMLAYERSTATE_HEADER_ 35 #define EMANENEMLAYERSTATE_HEADER_ 41 class NEMStatefulLayer;
260 #endif //EMANENEMLAYERSTATE_HEADER_ 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
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
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)