Blaze.Server.TdfEncoder.WriteTdfMap C# (CSharp) Method

WriteTdfMap() private method

private WriteTdfMap ( TdfMap tdf ) : void
tdf TdfMap
return void
        private void WriteTdfMap(TdfMap tdf)
        {
            // write list types
            _stream.WriteByte((byte)tdf.KeyType);
            _stream.WriteByte((byte)tdf.ValueType);

            // write list size
            _stream.WriteByte((byte)tdf.Map.Count);

            // write map
            Action<TdfBaseType, Object> writeListItem = (type, item) =>
            {
                switch (type)
                {
                    case TdfBaseType.Integer:
                        WriteInteger((ulong)item);
                        break;

                    case TdfBaseType.String:
                        WriteString((string)item);
                        break;

                    case TdfBaseType.Struct:
                        WriteStruct((List<Tdf>)item);
                        break;

                    default:
                        Log.Warn(string.Format("Unknown list item type: {0}", type));
                        break;
                }
            };

            foreach (var item in tdf.Map)
            {
                writeListItem(tdf.KeyType, item.Key);
                writeListItem(tdf.ValueType, item.Value);
            }
        }