void L2LogicalChannel::l2sendf(const L3Frame& frame) { SAPI_t sap = frame.getSAPI(); assert(sap == SAPI0 || sap == SAPI3 || sap == SAPI0Sacch || sap == SAPI3Sacch); WATCHINFO("l2sendf "<<channelDescription() <<LOGVAR(sap) <<LOGVAR(chtype()) <<" " <<frame); if (SAPIsSacch(sap)) { getSACCH()->l2sendf(frame); return; } switch (frame.primitive()) { case L3_ESTABLISH_REQUEST: if (sap != SAPI3) { LOG(NOTICE) << "unexpected"<<LOGVAR(sap)<<" in "<<LOGVAR(frame); } break; case L3_DATA: case L3_UNIT_DATA: break; case L3_RELEASE_REQUEST: // Normal release initiated by layer3. if (sap == SAPI0) { // Total deactivation requested. startNormalRelease(); return; } break; case L3_HARDRELEASE_REQUEST: // This is a full immediate release. if (sap == SAPI0) { immediateRelease(); return; } LOG(NOTICE) << "unexpected"<<LOGVAR(sap)<<" in "<<LOGVAR(frame); break; default: assert(0); return; } mL3In.write(new L3Frame(frame)); }
void ClientIrcListHelper::receiveChannelList(const NetworkId &netId, const QStringList &channelFilters, const QVariantList &channels) { QVariantList::const_iterator iter = channels.constBegin(); QVariantList::const_iterator iterEnd = channels.constEnd(); QList<ChannelDescription> channelList; while(iter != iterEnd) { QVariantList channelVar = iter->toList(); ChannelDescription channelDescription(channelVar[0].toString(), channelVar[1].toUInt(), channelVar[2].toString()); channelList << channelDescription; iter++; } emit channelListReceived(netId, channelFilters, channelList); }
void SACCHLogicalChannel::l2sendf(const L3Frame& frame) { SAPI_t sap = frame.getSAPI(); devassert(SAPIsSacch(sap)); if (sap != SAPI3Sacch) { LOG(NOTICE) << "unexpected"<<LOGVAR(sap)<<" in "<<LOGVAR(frame); } LOG(INFO) <<channelDescription() <<LOGVAR(sap) <<LOGVAR(chtype()) <<" " <<frame; switch (frame.primitive()) { case L3_ESTABLISH_REQUEST: // Fall through. case L3_DATA: case L3_UNIT_DATA: case L3_RELEASE_REQUEST: case L3_HARDRELEASE_REQUEST: mL3In.write(new L3Frame(frame)); return; default: assert(0); } }