Exemple #1
0
        public void WriteMessage(bool _, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            writer.Write(_heartbeatFrame);
            writer.Commit();
        }
Exemple #2
0
        public override void Write(Writer writer, string obj)
        {
            base.Write(writer, obj);
            var stream = writer.Stream;

            stream.WriteByte(TagString);
            ValueWriter.Write(stream, obj);
        }
Exemple #3
0
        public override void Write(Writer writer, StringBuilder obj)
        {
            base.Write(writer, obj);
            var stream = writer.Stream;

            stream.WriteByte(TagString);
            ValueWriter.Write(stream, obj.ToString());
        }
Exemple #4
0
 public void Write(Stream stream, DbEnvironment env)
 {
     Logger.Instance?.WriteLine($"-> {Type}: {Parameters.Length} parameters");
     stream.WriteByte((byte)Type);
     foreach (var parameter in Parameters)
     {
         ValueWriter.Write(parameter.Value, stream, parameter.Format, env.Encoding);
     }
 }
        public override void Write(Writer writer, T obj)
        {
            // No reference to exception
            writer.AddReferenceCount(1);
            var stream = writer.Stream;

            stream.WriteByte(TagError);
            stream.WriteByte(TagString);
            ValueWriter.Write(stream, obj.Message);
        }
        public override void Write(Writer writer, T obj)
        {
            base.Write(writer, obj);
            var rows   = obj.Rows;
            var length = rows.Count;
            var stream = writer.Stream;

            stream.WriteByte(TagList);
            if (length == 0)
            {
                stream.WriteByte(TagOpenbrace);
                stream.WriteByte(TagClosebrace);
                return;
            }
            ValueWriter.WriteInt(stream, length);
            stream.WriteByte(TagOpenbrace);
            var columns = obj.Columns;
            int count   = columns.Count;
            int r       = writer.WriteClass(columns, () => {
                stream.WriteByte(TagClass);
                ValueWriter.Write(stream, obj.TableName);
                ValueWriter.Write(stream, count);
                stream.WriteByte(TagOpenbrace);
                var strSerializer = Serializer <string> .Instance;
                for (int i = 0; i < count; ++i)
                {
                    strSerializer.Serialize(writer, Accessor.UnifiedName(columns[i].ColumnName));
                }
                stream.WriteByte(TagClosebrace);
            });
            var serializer = Serializer.Instance;

            for (int i = 0; i < length; ++i)
            {
                writer.AddReferenceCount(1);
                stream.WriteByte(TagObject);
                ValueWriter.WriteInt(stream, r);
                stream.WriteByte(TagOpenbrace);
                if (count > 0)
                {
                    var row = rows[i];
                    for (int j = 0; j < count; ++j)
                    {
                        serializer.Serialize(writer, row[j]);
                    }
                }
                stream.WriteByte(TagClosebrace);
            }
            stream.WriteByte(TagClosebrace);
        }
        public override void Write(Writer writer, T obj)
        {
            switch (obj.GetTypeCode())
            {
            case TypeCode.Int32:
                ValueWriter.Write(writer.Stream, obj.ToInt32(null));
                break;

            case TypeCode.SByte:
                ValueWriter.Write(writer.Stream, obj.ToSByte(null));
                break;

            case TypeCode.Int16:
                ValueWriter.Write(writer.Stream, obj.ToInt16(null));
                break;

            case TypeCode.Int64:
                ValueWriter.Write(writer.Stream, obj.ToInt64(null));
                break;

            case TypeCode.UInt32:
                ValueWriter.Write(writer.Stream, obj.ToUInt32(null));
                break;

            case TypeCode.Byte:
                ValueWriter.Write(writer.Stream, obj.ToByte(null));
                break;

            case TypeCode.UInt16:
                ValueWriter.Write(writer.Stream, obj.ToUInt16(null));
                break;

            case TypeCode.UInt64:
                ValueWriter.Write(writer.Stream, obj.ToUInt64(null));
                break;

            case TypeCode.Boolean:
                ValueWriter.Write(writer.Stream, obj.ToBoolean(null));
                break;

            case TypeCode.Char:
                ValueWriter.Write(writer.Stream, obj.ToChar(null));
                break;
            }
        }
Exemple #8
0
        public override void Serialize(Writer writer, string obj)
        {
            var stream = writer.Stream;

            switch (obj?.Length)
            {
            case 0:
                stream.WriteByte(TagEmpty);
                break;

            case 1:
                ValueWriter.Write(stream, obj[0]);
                break;

            default:
                base.Serialize(writer, obj);
                break;
            }
        }
Exemple #9
0
 public override void Write(Writer writer, byte obj) => ValueWriter.Write(writer.Stream, obj);
Exemple #10
0
 public override void Write(Writer writer, IntPtr obj) => ValueWriter.Write(writer.Stream, obj);
Exemple #11
0
        public void WriteAggregatedValues(CancellationToken cancellationToken)
        {
            int count = 0;

            IEnumerable <string> values = Storage.Values;

            if (Sections?.Count > 1 &&
                (ModifyOptions.HasFunction(ModifyFunctions.Except_Intersect)))
            {
                if (ModifyOptions.HasFunction(ModifyFunctions.Except))
                {
                    values = ExceptOrIntersect(Storage.Values, (x, y, c) => x.Except(y, c));
                }
                else if (ModifyOptions.HasFunction(ModifyFunctions.Intersect))
                {
                    values = ExceptOrIntersect(Storage.Values, (x, y, c) => x.Intersect(y, c));
                }
            }

            Dictionary <string, List <StorageSection> >?valuesMap = null;

            if (Sections?.Count > 0 &&
                ModifyOptions.HasFunction(ModifyFunctions.Group))
            {
                if (Options.ContentFilter != null)
                {
                    valuesMap = GroupByValues(Storage.Values);
                }
                else
                {
                    valuesMap = Storage.Values
                                .Zip(Sections)
                                .GroupBy(f => f.First)
                                .ToDictionary(f => f.Key, f => f.Select(f => f.Second).ToList());
                }

                values = valuesMap
                         .Select(f => f.Key)
                         .Modify(ModifyOptions, filter: ModifyFunctions.Enumerable & ~ModifyFunctions.Distinct);
            }
            else
            {
                values = values.Modify(ModifyOptions, filter: ModifyFunctions.Enumerable);
            }

            using (IEnumerator <string> en = values.GetEnumerator())
            {
                if (en.MoveNext())
                {
                    OutputSymbols symbols = OutputSymbols.Create(Options.HighlightOptions);

                    ConsoleColors colors = ((Options.HighlightOptions & HighlightOptions.Match) != 0)
                        ? Colors.Match
                        : default;

                    ConsoleColors boundaryColors = (Options.HighlightBoundary) ? Colors.MatchBoundary : default;
                    var           valueWriter    = new ValueWriter(new ContentTextWriter(Verbosity.Minimal), includeEndingIndent: false);

                    if (!Options.AggregateOnly)
                    {
                        ConsoleOut.WriteLineIf(ShouldWriteLine(ConsoleOut.Verbosity));
                        Out?.WriteLineIf(ShouldWriteLine(Out.Verbosity));
                    }

                    do
                    {
                        cancellationToken.ThrowIfCancellationRequested();

                        valueWriter.Write(en.Current, symbols, colors, boundaryColors);

                        if (valuesMap != null &&
                            ShouldLog(Verbosity.Detailed))
                        {
                            int groupCount = valuesMap[en.Current].Count;

                            Write("  ", Colors.Message_OK, Verbosity.Detailed);
                            Write(groupCount.ToString("n0"), Colors.Message_OK, Verbosity.Detailed);
                        }

                        WriteLine(Verbosity.Minimal);

                        if (valuesMap != null)
                        {
                            WriteGroup(valuesMap[en.Current], cancellationToken);
                        }

                        count++;
                    } while (en.MoveNext());

                    if (Options.IncludeSummary ||
                        ShouldLog(Verbosity.Detailed))
                    {
                        Verbosity verbosity = (Options.IncludeSummary)
                            ? Verbosity.Minimal
                            : Verbosity.Detailed;

                        if (valuesMap != null)
                        {
                            count = valuesMap.Sum(f => f.Value.Count);
                        }

                        WriteLine(verbosity);

                        if (valuesMap != null)
                        {
                            WriteCount("Groups", valuesMap.Count, verbosity: verbosity);
                            Write("  ", verbosity);
                        }

                        WriteCount("Values", count, verbosity: verbosity);
                        WriteLine(verbosity);
                    }
                }
            }

            bool ShouldWriteLine(Verbosity verbosity)
            {
                if (verbosity > Verbosity.Minimal)
                {
                    return(true);
                }

                return(verbosity == Verbosity.Minimal &&
                       (Options.PathDisplayStyle != PathDisplayStyle.Omit || Options.IncludeSummary));
            }
        }
 public override void Write(Writer writer, TimeSpan obj) => ValueWriter.Write(writer.Stream, obj.Ticks);
 public override void Write(Writer writer, decimal obj) => ValueWriter.Write(writer.Stream, obj);
Exemple #14
0
 public override void Write(Writer writer, BigInteger obj) => ValueWriter.Write(writer.Stream, obj);
 public override void Write(Writer writer, DateTime obj)
 {
     base.Write(writer, obj);
     ValueWriter.Write(writer.Stream, obj);
 }
 public override void Write(Writer writer, ushort obj) => ValueWriter.Write(writer.Stream, obj);