Пример #1
0
 public void ToWriter(DataFrames.DataWriter writer, DataFrames.DataKey root, Utils.Logger logger)
 {
     foreach (DataNode node in root.SubNodes)
     {
         writer.Write(node.ToArray());
     }
 }
Пример #2
0
        public byte[] ToArray(DataFrames.DataKey root, Utils.Logger logger)
        {
            DataValue value = root.SelectSingleNode("xml") as DataValue;

            byte[] ret = new byte[0];

            if (value != null)
            {
                if (!Config.NoEncode)
                {
                    XmlDocument doc = new XmlDocument();

                    doc.LoadXml(value.Value.ToString());

                    MemoryStream        stm    = new MemoryStream();
                    XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(stm, wcfDictionary);

                    doc.Save(writer);
                    writer.Flush();

                    ret = stm.ToArray();
                }
                else
                {
                    ret = new BinaryEncoding().GetBytes(value.Value.ToString());
                }
            }

            return(ret);
        }
Пример #3
0
        public void FromReader(DataReader reader, DataFrames.DataKey root, Utils.Logger logger)
        {
            IStreamTypeParser parser = new T();
            StateDictionary   state  = new StateDictionary();

            try
            {
                // Reset byte count
                reader.ByteCount = 0;
                parser.FromStream(reader, state, logger);

                ObjectConverter.ToNode(root, parser, _derivedTypes);
            }
            catch (ThreadAbortException)
            {
                throw;
            }
            catch (Exception ex)
            {
                if (!(ex is EndOfStreamException) || (reader.ByteCount != 0))
                {
                    logger.LogError(CANAPE.Parser.Properties.Resources.GenericStreamParser_ReadException, ex.Message, typeof(T).Name);
                }
                throw;
            }
        }
Пример #4
0
        public void FromString(string data, DataFrames.DataKey root, Utils.Logger logger)
        {
            string[] cookies = data.Split(';');

            foreach (string cookie in cookies)
            {
                AddCookie(cookie, root, logger);
            }
        }
Пример #5
0
        public string ToDisplayString(DataFrames.DataKey root, Utils.Logger logger)
        {
            DataValue value = root.SelectSingleNode("xml") as DataValue;

            if (value != null)
            {
                return(value.ToString());
            }

            return(String.Empty);
        }
Пример #6
0
        public string ToDisplayString(DataFrames.DataKey root, Utils.Logger logger)
        {
            DataNode node = root.SelectSingleNode("Data");

            if (node != null)
            {
                return(node.ToString());
            }
            else
            {
                return(String.Format("Type: {0} Little Endian: {1} Exclusive: {2}", Config.LengthType, Config.LittleEndian, Config.Inclusive));
            }
        }
Пример #7
0
        public void FromReader(DataReader reader, DataFrames.DataKey root, Utils.Logger logger)
        {
            if (Config.PrefixLen > 0)
            {
                root.AddValue("Prefix", reader.ReadBytes(Config.PrefixLen, true));
            }

            ulong length = ReadLength(reader, logger);

            logger.LogVerbose("Read length field of {0} bytes", length);


            byte[] data = reader.ReadBytes((int)(length * Config.Stride) + Config.Adjustment, true);

            root.AddValue("Data", data);
        }
Пример #8
0
        public void FromReader(DataReader reader, DataFrames.DataKey root, Utils.Logger logger)
        {
            Asn1InputStream input = new Asn1InputStream(reader.GetStream());
            Asn1Object      obj   = input.ReadObject();

            if (obj == null)
            {
                throw new EndOfStreamException();
            }

            while (obj != null)
            {
                AddAsn1Object(obj.GetType().Name, root, obj, 0, logger);

                obj = input.ReadObject();
            }
        }
Пример #9
0
        public void ToWriter(DataFrames.DataWriter writer, DataFrames.DataKey root, Utils.Logger logger)
        {
            StateDictionary state = new StateDictionary();

            try
            {
                IStreamTypeParser parser = ObjectConverter.FromNode <T>(root, _derivedTypes);

                parser.ToStream(writer, state, logger);
            }
            catch (ThreadAbortException)
            {
                throw;
            }
            catch (Exception ex)
            {
                logger.LogError(CANAPE.Parser.Properties.Resources.GenericStreamParser_WriteException, ex.Message, typeof(T).Name);
                throw;
            }
        }
Пример #10
0
        public void FromArray(byte[] data, DataFrames.DataKey root, Utils.Logger logger)
        {
            if (!Config.NoDecode)
            {
                XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(data, 0, data.Length, wcfDictionary, XmlDictionaryReaderQuotas.Max);
                XmlDocument         doc    = new XmlDocument();
                doc.Load(reader);

                StringWriter  sWriter = new StringWriter();
                XmlTextWriter writer  = new XmlTextWriter(sWriter);
                writer.Formatting = Formatting.Indented;

                doc.WriteTo(writer);

                root.AddValue("xml", sWriter.ToString());
            }
            else
            {
                root.AddValue("xml", new BinaryEncoding().GetString(data));
            }
        }
Пример #11
0
        public void ToWriter(DataFrames.DataWriter writer, DataFrames.DataKey root, Utils.Logger logger)
        {
            MemoryStream stm = new MemoryStream();
            DataWriter   w   = new DataWriter(stm);

            foreach (DataNode node in root.SubNodes)
            {
                node.ToWriter(w);
            }

            byte[] data = stm.ToArray();

            logger.LogVerbose("Writing length field of {0} bytes", data.Length);

            if ((data.Length % Config.Stride) != 0)
            {
                logger.LogWarning("Data length of {0} is not a multiple of stride {1}", data.Length, Config.Stride);
            }

            WriteLength(writer, (ulong)(data.Length - Config.Adjustment) / Config.Stride, logger);
            writer.Write(stm.ToArray());
        }
Пример #12
0
 public string ToDisplayString(DataFrames.DataKey root, Utils.Logger logger)
 {
     return(String.Format("Cookies: {0}", String.Join(", ", root.SubNodes.Select(n => n.Name))));
 }
Пример #13
0
 public string ToString(DataFrames.DataKey root, Utils.Logger logger)
 {
     return(String.Join("; ", root.SubNodes.Select(n => String.Format("{0}={1}", n.Name, n.ToDataString()))));
 }
Пример #14
0
 public string ToDisplayString(DataFrames.DataKey root, Utils.Logger logger)
 {
     return("ASN1");
 }