public void deliver(SCTPStream s, SortedArray <DataChunk> a, SCTPStreamListener l) { logger.LogDebug("in deliver() for stream " + s.getLabel() + " with " + a.Count + " chunks. "); // strictly this should be looking at flags etc, and bundling the result into a message foreach (DataChunk dc in a) { if (dc.getDCEP() != null) { logger.LogDebug("in deliver() for a DCEP message " + dc.getDataAsString()); } else { logger.LogDebug("inbound data chunk is " + dc.ToString()); l.onMessage(s, dc.getDataAsString()); } } a.Clear(); }
public void run() { //logger.LogDebug("delegated message delivery from stream of type " + _stream.GetType().Name); byte[] data = _data; if (_li != null) { switch (_pPid) { case DataChunk.WEBRTCBINARYEMPTY: data = new byte[0]; goto case DataChunk.WEBRTCBINARY; case DataChunk.WEBRTCBINARY: if (typeof(SCTPByteStreamListener).IsAssignableFrom(_li.GetType())) { ((SCTPByteStreamListener)_li).onMessage(_stream, data); _delivered = true; } else { _li.onDataMessage(_stream, _data); _delivered = true; } break; case DataChunk.WEBRTCstringEMPTY: data = new byte[0]; goto case DataChunk.WEBRTCstring; case DataChunk.WEBRTCstring: _li.onMessage(_stream, Encoding.UTF8.GetString(_data)); _delivered = true; break; } } if (!_delivered) { logger.LogDebug("Undelivered message to " + (_stream == null ? "null stream" : _stream.getLabel()) + " via " + (_li == null ? "null listener" : _li.GetType().Name) + " ppid is " + _pPid); } }
public Chunk[] respond(SCTPStream a) { logger.LogDebug("in respond() for a opened stream " + a.getLabel()); return(null); }