示例#1
0
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);
}
示例#3
0
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);
	}
}