Пример #1
0
 public override uint EncodeContent(Stream strm, EncodingRules encRule)
 {
     //encoded in NumberingPlan !!
     return 0;
 }
Пример #2
0
 public static uint DecodeContent_and_only_content(this Asn1SequenceOrSetObject obj, Stream strm, EncodingRules encRule)
 {
     uint total = 0;
     for (int i = 0; i < obj.m_children.Length; i++)
     {
         obj.m_children[i] = obj.ClassDef[i].createObj();
         obj.m_children[i].Parent = obj;
         total = obj.m_children[i].DecodeContent(strm, encRule, 0xFFFFFFFF, false);
     }
     return total;
 }
Пример #3
0
 public override uint Encode(Stream strm, EncodingRules encRule)
 {
     uint ret = 0;
     foreach (DataInterChange ch in m_children)
         ret += ch.Encode(strm, encRule);
     return ret;
 }
Пример #4
0
 public override uint DecodeContent(Stream strm, EncodingRules encRule, uint dataLen, bool indefiniteForm)
 {
     return 0;
 }
Пример #5
0
        public override uint EncodeContent(Stream strm, EncodingRules encRule)
        {
            int len = int.Parse(CustomAttrs["Size"]);

            List<byte> tmp = new List<byte>(BitConverter.GetBytes(Value));
            tmp = tmp.GetRange(0, len);
            tmp.Reverse();
            foreach(var b in tmp)
                strm.WriteByte(b);
            return (uint)tmp.Count;
        }
Пример #6
0
        public override uint Decode(Stream strm, EncodingRules encRule)
        {
            uint decodedData = 0;
            while (strm.Position < strm.Length)
            {
                DataInterChange ch = AppendNewChild();
                decodedData += ch.Decode(strm, encRule);
            }

            return decodedData;
        }
Пример #7
0
        public override uint EncodeContent(Stream strm, EncodingRules encRule)
        {
            int len = int.Parse(CustomAttrs["Size"]);
            if (Value.Count < len)
                Value.AddRange(Enumerable.Repeat<byte>(0xFF, len - Value.Count));
            else if (Value.Count > len)
                Value.RemoveRange(len, Value.Count - len);

            return base.EncodeContent(strm, encRule);
        }
Пример #8
0
 public override uint DecodeContent(Stream strm, EncodingRules encRule, uint dataLen, bool indefiniteForm)
 {
     uint len = uint.Parse(CustomAttrs["Size"]);
     return base.DecodeContent(strm, encRule, len, false);
 }
Пример #9
0
 public override uint EncodeContent(Stream strm, EncodingRules encRule)
 {
     return   ((Asn1SequenceOrSetObject)m_Alternative).EncodeContent_and_only_content(strm, encRule);
 }
Пример #10
0
        public override uint EncodeContent(Stream strm, EncodingRules encRule)
        {
            int len = int.Parse(CustomAttrs["Size"]);

            if (Value.Length > len)
                Value = Value.Substring(0, len);
            if (Value.Length < len)
                Value += new string(' ', len - Value.Length);

            return base.EncodeContent(strm, encRule);
        }
Пример #11
0
 public override uint DecodeContent(Stream strm, EncodingRules encRule, uint dataLen, bool indefiniteForm)
 {
     NamedChild childClass = _creators[dataLen];
     m_children[childClass.m_index] = childClass.createObj();
     m_children[childClass.m_index].Parent = this;
     return ((Asn1SequenceOrSetObject)m_children[childClass.m_index]).DecodeContent_and_only_content(strm, encRule);
 }
Пример #12
0
        public override uint EncodeContent(Stream strm, EncodingRules encRule)
        {
            City city = Parent as City;

            byte TypeofNumberAndNumberingPlanIndicator = 0;

            TypeofNumberAndNumberingPlanIndicator = (byte)(city.typeofNumber.Value[0] << 4);

            TypeofNumberAndNumberingPlanIndicator |= (byte)(Value[0] & 0xF);

            strm.WriteByte(TypeofNumberAndNumberingPlanIndicator);
            return 1;
        }
Пример #13
0
        public override uint DecodeContent(Stream strm, EncodingRules encRule, uint dataLen, bool indefiniteForm)
        {
            City city = Parent as City;

            byte TypeofNumberAndNumberingPlanIndicator = (byte)strm.ReadByte();

            Value.Clear();
            Value.Add((byte)(TypeofNumberAndNumberingPlanIndicator & 0xF));

            city.typeofNumber.Value.Clear();
            city.typeofNumber.Value.Add((byte)(TypeofNumberAndNumberingPlanIndicator >> 4));

            return 1;
        }
Пример #14
0
        public override uint Encode(Stream strm, EncodingRules encRule, bool primitive, uint tag)
        {
            Value = cll.CreateOSRawData();
            long sPos = strm.Position;
            BER.EncodeTagAsInt(strm, tag, primitive);
            BER.EncodeLengthDF(strm, (uint)Value.Count);
            EncodeContent(strm, encRule);

            return (uint)(strm.Position - sPos);
        }
Пример #15
0
        public static uint EncodeContent_and_only_content(this Asn1SequenceOrSetObject obj, Stream strm, EncodingRules encRule)
        {
            uint total = 0;
            for (int i = 0; i < obj.m_children.Length; i++)
            {
                if (obj.m_children[i] == null)
                {
                    obj.m_children[i] = obj.ClassDef[i].createObj();
                    ((IOperSpecField)(obj.m_children[i])).SetValueToDefault();
                }
                total += obj.m_children[i].EncodeContent(strm, encRule);
            }

            return total;
        }