PeerCastStation.Core.StreamExtension.Write C# (CSharp) Method

Write() static public method

static public Write ( this stream, Atom atom ) : void
stream this
atom Atom
return void
    static public void Write(this Stream stream, Atom atom)
    {
      var name = atom.Name.GetBytes();
      stream.Write(name, 0, name.Length);
      if (atom.HasValue) {
        var value = atom.GetBytes();
        var len = BitConverter.GetBytes(value.Length);
        if (!BitConverter.IsLittleEndian) Array.Reverse(len);
        stream.Write(len, 0, len.Length);
        stream.Write(value, 0, value.Length);
      }
      else {
        var cnt = BitConverter.GetBytes(0x80000000U | (uint)atom.Children.Count);
        if (!BitConverter.IsLittleEndian) Array.Reverse(cnt);
        stream.Write(cnt, 0, cnt.Length);
        foreach (var child in atom.Children) {
          Write(stream, child);
        }
      }
    }