Exemplo n.º 1
0
        public GeneralDSEventData(EdirEventDataType eventDataType, Asn1Object message)
            : base(eventDataType, message)
        {
            int[] length = new int[1];

            ds_time = getTaggedIntValue(
                (Asn1Tagged)decoder.decode(decodedData, length),
                GeneralEventField.EVT_TAG_GEN_DSTIME);
            milli_seconds = getTaggedIntValue(
                (Asn1Tagged)decoder.decode(decodedData, length),
                GeneralEventField.EVT_TAG_GEN_MILLISEC);

            nVerb = getTaggedIntValue(
                (Asn1Tagged)decoder.decode(decodedData, length),
                GeneralEventField.EVT_TAG_GEN_VERB);
            current_process = getTaggedIntValue(
                (Asn1Tagged)decoder.decode(decodedData, length),
                GeneralEventField.EVT_TAG_GEN_CURRPROC);

            strPerpetratorDN = getTaggedStringValue(
                (Asn1Tagged)decoder.decode(decodedData, length),
                GeneralEventField.EVT_TAG_GEN_PERP);

            Asn1Tagged temptaggedvalue =
                ((Asn1Tagged)decoder.decode(decodedData, length));

            if (temptaggedvalue.getIdentifier().Tag
                == (int)GeneralEventField.EVT_TAG_GEN_INTEGERS)
            {
                //Integer List.
                Asn1Sequence inteseq   = getTaggedSequence(temptaggedvalue, GeneralEventField.EVT_TAG_GEN_INTEGERS);
                Asn1Object[] intobject = inteseq.toArray();
                integer_values = new int[intobject.Length];

                for (int i = 0; i < intobject.Length; i++)
                {
                    integer_values[i] = ((Asn1Integer)intobject[i]).intValue();
                }

                //second decoding for Strings.
                temptaggedvalue = ((Asn1Tagged)decoder.decode(decodedData, length));
            }
            else
            {
                integer_values = null;
            }

            if ((temptaggedvalue.getIdentifier().Tag
                 == (int)GeneralEventField.EVT_TAG_GEN_STRINGS) &&
                (temptaggedvalue.getIdentifier().Constructed))
            {
                //String values.
                Asn1Sequence inteseq =
                    getTaggedSequence(temptaggedvalue, GeneralEventField.EVT_TAG_GEN_STRINGS);
                Asn1Object[] stringobject = inteseq.toArray();
                string_values = new string[stringobject.Length];

                for (int i = 0; i < stringobject.Length; i++)
                {
                    string_values[i] =
                        ((Asn1OctetString)stringobject[i]).stringValue();
                }
            }
            else
            {
                string_values = null;
            }

            DataInitDone();
        }