object IEmberVisitor <XmlExportState, object> .Visit(OctetStringEmberLeaf node, XmlExportState state) { var buffer = new StringBuilder(); var value = node.Value; for (int index = 0; index < value.Length; index++) { buffer.Append(value[index].ToString("X2")); if ((index & 0x1F) == 0x1F) { buffer.AppendLine(); } } return(WriteLeaf(node, state, buffer.ToString())); }
EmberNode CreateNode(string tagName, string typeName) { BerTag tag; EmberNode node = null; if (BerTag.TryParse(tagName, out tag) && typeName != null) { uint type; if (BerDefinitions.GetTypeFromName(typeName, true, out type)) { switch (type) { case BerType.Null: { node = new NullEmberLeaf(tag); break; } case BerType.Boolean: { bool value; if (bool.TryParse(_reader.ReadContentAsString(), out value)) { node = new BooleanEmberLeaf(tag, value); } break; } case BerType.Integer: { long value; if (long.TryParse(_reader.ReadContentAsString(), out value)) { if ((ulong)value > int.MaxValue) { node = new LongEmberLeaf(tag, value); } else { node = new IntegerEmberLeaf(tag, (int)value); } } break; } case BerType.Real: { double value; if (double.TryParse(_reader.ReadContentAsString(), NumberStyles.Float, XmlExport.FormatProvider, out value)) { node = new RealEmberLeaf(tag, value); } break; } case BerType.UTF8String: { node = new StringEmberLeaf(tag, _reader.ReadContentAsString()); break; } case BerType.OctetString: { var octets = System.Convert.FromBase64String(_reader.ReadContentAsString()); node = new OctetStringEmberLeaf(tag, octets); break; } #pragma warning disable 618 // EmberFrame is obsolete case BerType.Sequence: { if (tag == Legacy.EmberFrame.FrameTag) { node = new Legacy.EmberFrame(); } else { node = new EmberSequence(tag); } break; } #pragma warning restore 618 case BerType.Set: { node = new EmberSet(tag); break; } default: { if (_application != null) { node = _application.CreateNodeFromXml(type, tag, _reader); } if (node == null) { Debug.WriteLine("Unknown BER value type: " + type); node = new EmberContainer(tag, null, type); } break; } } } } return(node); }
EmberNode CreateNode(string tagName, string typeName) { BerTag tag; EmberNode node = null; if(BerTag.TryParse(tagName, out tag) && typeName != null) { uint type; if(BerDefinitions.GetTypeFromName(typeName, true, out type)) { switch(type) { case BerType.Boolean: { bool value; if(bool.TryParse(_reader.ReadContentAsString(), out value)) node = new BooleanEmberLeaf(tag, value); break; } case BerType.Integer: { long value; if(long.TryParse(_reader.ReadContentAsString(), out value)) { if((ulong)value > int.MaxValue) node = new LongEmberLeaf(tag, value); else node = new IntegerEmberLeaf(tag, (int)value); } break; } case BerType.Real: { double value; if(double.TryParse(_reader.ReadContentAsString(), NumberStyles.Float, XmlExport.FormatProvider, out value)) node = new RealEmberLeaf(tag, value); break; } case BerType.UTF8String: { node = new StringEmberLeaf(tag, _reader.ReadContentAsString()); break; } case BerType.OctetString: { var octets = System.Convert.FromBase64String(_reader.ReadContentAsString()); node = new OctetStringEmberLeaf(tag, octets); break; } #pragma warning disable 618 // EmberFrame is obsolete case BerType.Sequence: { if(tag == Legacy.EmberFrame.FrameTag) node = new Legacy.EmberFrame(); else node = new EmberSequence(tag); break; } #pragma warning restore 618 case BerType.Set: { node = new EmberSet(tag); break; } default: { if(_application != null) node = _application.CreateNodeFromXml(type, tag, _reader); if(node == null) { Debug.WriteLine("Unknown BER value type: " + type); node = new EmberContainer(tag, null, type); } break; } } } } return node; }