62   if (msg->isSelfMessage())
 
   75           userDataField->encapsulate((*it));
 
   83           send(userDataField, 
southO);
 
   91     if (msg->arrivedOn(
northI->getId()))
 
   95     else if (msg->arrivedOn(
southI->getId()))
 
  114   std::vector<Data*> dataQ;
 
  118     int64_t length = sduData->getByteLength();
 
  121     data->encapsulate(sduData);
 
  125     dataQ.push_back(data);
 
  133       data->setByteLength(maxFlowPDUSize);
 
  134       dataQ.push_back(data);
 
  140     data->setByteLength(length);
 
  141     dataQ.push_back(data);
 
  147     for(
auto it = dataQ.begin(); it != dataQ.end(); it = dataQ.erase(it))
 
  159       userDataField->encapsulate((*it));
 
  167       send(userDataField, 
southO);
 
  181       data->encapsulate(sduData);
 
  195       int64_t pduDatalength = pduData->getByteLength();
 
  198       if(restLength < sduData->getByteLength())
 
  201         int64_t length = sduData->getByteLength();
 
  204         data->encapsulate(sduData);
 
  206         data->setByteLength(restLength);
 
  208         length -= restLength;
 
  217           data->setByteLength(maxFlowPDUSize);
 
  218           dataQ.push_back(data);
 
  224         data->setByteLength(length);
 
  225         dataQ.push_back(data);
 
  227         for(
auto it = dataQ.begin(); it != dataQ.end(); it = dataQ.erase(it))
 
  239           userDataField->encapsulate((*it));
 
  247           send(userDataField, 
southO);
 
  257         data->encapsulate(sduData);
 
  278       userDataField->encapsulate((*it));
 
  286       send(userDataField, 
southO);
 
  293     data->encapsulate(sduData);
 
  301     userDataField->encapsulate(pduData);
 
  308     send(userDataField, 
southO);
 
  322     pduData = 
static_cast<PDUData*
>((*it)->decapsulate());
 
  324     for(; (data = pduData->
decapsulate()) != 
nullptr; ){
 
  336       if (sduData != 
nullptr)
 
  349       for(; tmpIt != 
dataQIn.end(); ++tmpIt){
 
  358         (*it)->setByteLength((*it)->getEncapMsgLength());
 
  360         if (sduData != 
nullptr)
 
  396       if(!timer->isScheduled()){
 
virtual void setNoLength(bool noLength)
virtual void setEncapMsgLength(int64_t encapMsgLength)
virtual void setSduSeqNumPresent(bool sduSeqNumPresent)
virtual void handleMessage(cMessage *msg)
Define_Module(Delimiting)
unsigned int maxFlowSDUSize
void handleMsgFromEfcpi(UserDataField *msg)
virtual int getType() const 
#define GATE_DELIMIT_SOUTHIO
virtual void setLastFragment(bool lastFragment)
#define GATE_DELIMIT_NORTHIO
std::vector< SDUData * > sduDataQIn
std::vector< Data * > dataQIn
unsigned int maxFlowPDUSize
void setSduSeqNum(unsigned int sduSeqNum)
virtual void setFirstFragment(bool firstFragment)
std::vector< UserDataField * > userDataFieldQIn
virtual void setDataType(int dataType)
void processMsgFromFAI(SDUData *msg)
void schedule(DelimitingTimers *timer)
virtual void initialize(int step)
virtual Data * decapsulate()
virtual void setCompleteSDU(bool completeSDU)
DelimitingDelimitTimer * delimitingTimer
virtual void encapsulate(Data *data)
virtual void setMidFragment(bool midFragment)
std::vector< PDUData * > pduDataQOut