Beispiel #1
0
        new public int getMarshalledSize()
        {
            int marshalSize = 0;

            marshalSize = base.getMarshalledSize();
            marshalSize = marshalSize + 1;  // _requiredReliabilityService
            marshalSize = marshalSize + 2;  // _pad1
            marshalSize = marshalSize + 1;  // _pad2
            marshalSize = marshalSize + 4;  // _requestID
            marshalSize = marshalSize + 4;  // _timeInterval
            marshalSize = marshalSize + 4;  // _numberOfFixedDatumRecords
            marshalSize = marshalSize + 4;  // _numberOfVariableDatumRecords
            for (int idx = 0; idx < _fixedDatumRecords.Count; idx++)
            {
                FixedDatum listElement = (FixedDatum)_fixedDatumRecords[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }
            for (int idx = 0; idx < _variableDatumRecords.Count; idx++)
            {
                VariableDatum listElement = (VariableDatum)_variableDatumRecords[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }

            return(marshalSize);
        }
Beispiel #2
0
        } // end of marshal method

        new public void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _requiredReliabilityService = dis.readByte();
                _pad1         = dis.readUshort();
                _pad2         = dis.readByte();
                _requestID    = dis.readUint();
                _timeInterval = dis.readUint();
                _numberOfFixedDatumRecords    = dis.readUint();
                _numberOfVariableDatumRecords = dis.readUint();
                for (int idx = 0; idx < _numberOfFixedDatumRecords; idx++)
                {
                    FixedDatum anX = new FixedDatum();
                    anX.unmarshal(dis);
                    _fixedDatumRecords.Add(anX);
                }
                ;

                for (int idx = 0; idx < _numberOfVariableDatumRecords; idx++)
                {
                    VariableDatum anX = new VariableDatum();
                    anX.unmarshal(dis);
                    _variableDatumRecords.Add(anX);
                }
                ;
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of unmarshal method
Beispiel #3
0
        ///<summary>
        ///Marshal the data to the DataOutputStream.  Note: Length needs to be set before calling this method
        ///</summary>
        new public void marshal(DataOutputStream dos)
        {
            base.marshal(dos);
            try
            {
                dos.writeUint((uint)_requestID);
                dos.writeUint((uint)_padding1);
                dos.writeUint((uint)_fixedDatums.Count);
                dos.writeUint((uint)_variableDatums.Count);

                for (int idx = 0; idx < _fixedDatums.Count; idx++)
                {
                    FixedDatum aFixedDatum = (FixedDatum)_fixedDatums[idx];
                    aFixedDatum.marshal(dos);
                } // end of list marshalling


                for (int idx = 0; idx < _variableDatums.Count; idx++)
                {
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatums[idx];
                    aVariableDatum.marshal(dos);
                } // end of list marshalling
            }     // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
Beispiel #4
0
        } // end of marshal method

        new public void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _requestID = dis.readUint();
                _padding1  = dis.readUint();
                _numberOfFixedDatumRecords    = dis.readUint();
                _numberOfVariableDatumRecords = dis.readUint();
                for (int idx = 0; idx < _numberOfFixedDatumRecords; idx++)
                {
                    FixedDatum anX = new FixedDatum();
                    anX.unmarshal(dis);
                    _fixedDatums.Add(anX);
                }
                ;

                for (int idx = 0; idx < _numberOfVariableDatumRecords; idx++)
                {
                    VariableDatum anX = new VariableDatum();
                    anX.unmarshal(dis);
                    _variableDatums.Add(anX);
                }
                ;
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of unmarshal method
Beispiel #5
0
        /**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(DataQueryReliablePdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_requiredReliabilityService == rhs._requiredReliabilityService))
            {
                ivarsEqual = false;
            }
            if (!(_pad1 == rhs._pad1))
            {
                ivarsEqual = false;
            }
            if (!(_pad2 == rhs._pad2))
            {
                ivarsEqual = false;
            }
            if (!(_requestID == rhs._requestID))
            {
                ivarsEqual = false;
            }
            if (!(_timeInterval == rhs._timeInterval))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfFixedDatumRecords == rhs._numberOfFixedDatumRecords))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfVariableDatumRecords == rhs._numberOfVariableDatumRecords))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _fixedDatumRecords.Count; idx++)
            {
                FixedDatum x = (FixedDatum)_fixedDatumRecords[idx];
                if (!(_fixedDatumRecords[idx].Equals(rhs._fixedDatumRecords[idx])))
                {
                    ivarsEqual = false;
                }
            }


            for (int idx = 0; idx < _variableDatumRecords.Count; idx++)
            {
                VariableDatum x = (VariableDatum)_variableDatumRecords[idx];
                if (!(_variableDatumRecords[idx].Equals(rhs._variableDatumRecords[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
Beispiel #6
0
        /**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(VariableDatum rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_variableDatumID == rhs._variableDatumID))
            {
                ivarsEqual = false;
            }
            if (!(_variableDatumLength == rhs._variableDatumLength))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _variableDatums.Count; idx++)
            {
                EightByteChunk x = (EightByteChunk)_variableDatums[idx];
                if (!(_variableDatums[idx].Equals(rhs._variableDatums[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
Beispiel #7
0
        } // end of marshal method

        new public void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _groupEntityID.unmarshal(dis);
                _groupedEntityCategory   = dis.readByte();
                _numberOfGroupedEntities = dis.readByte();
                _pad2      = dis.readUint();
                _latitude  = dis.readDouble();
                _longitude = dis.readDouble();
                for (int idx = 0; idx < _numberOfGroupedEntities; idx++)
                {
                    VariableDatum anX = new VariableDatum();
                    anX.unmarshal(dis);
                    _groupedEntityDescriptions.Add(anX);
                }
                ;
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of unmarshal method
Beispiel #8
0
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<IsGroupOfPdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<groupEntityID>" + System.Environment.NewLine);
                _groupEntityID.reflection(sb);
                sb.Append("</groupEntityID>" + System.Environment.NewLine);
                sb.Append("<groupedEntityCategory type=\"byte\">" + _groupedEntityCategory.ToString() + "</groupedEntityCategory> " + System.Environment.NewLine);
                sb.Append("<groupedEntityDescriptions type=\"byte\">" + _groupedEntityDescriptions.Count.ToString() + "</groupedEntityDescriptions> " + System.Environment.NewLine);
                sb.Append("<pad2 type=\"uint\">" + _pad2.ToString() + "</pad2> " + System.Environment.NewLine);
                sb.Append("<latitude type=\"double\">" + _latitude.ToString() + "</latitude> " + System.Environment.NewLine);
                sb.Append("<longitude type=\"double\">" + _longitude.ToString() + "</longitude> " + System.Environment.NewLine);

                for (int idx = 0; idx < _groupedEntityDescriptions.Count; idx++)
                {
                    sb.Append("<groupedEntityDescriptions" + idx.ToString() + " type=\"VariableDatum\">" + System.Environment.NewLine);
                    VariableDatum aVariableDatum = (VariableDatum)_groupedEntityDescriptions[idx];
                    aVariableDatum.reflection(sb);
                    sb.Append("</groupedEntityDescriptions" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</IsGroupOfPdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of reflection method
Beispiel #9
0
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<CommentReliablePdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<fixedDatumRecords type=\"uint\">" + _fixedDatumRecords.Count.ToString() + "</fixedDatumRecords> " + System.Environment.NewLine);
                sb.Append("<variableDatumRecords type=\"uint\">" + _variableDatumRecords.Count.ToString() + "</variableDatumRecords> " + System.Environment.NewLine);

                for (int idx = 0; idx < _fixedDatumRecords.Count; idx++)
                {
                    sb.Append("<fixedDatumRecords" + idx.ToString() + " type=\"FixedDatum\">" + System.Environment.NewLine);
                    FixedDatum aFixedDatum = (FixedDatum)_fixedDatumRecords[idx];
                    aFixedDatum.reflection(sb);
                    sb.Append("</fixedDatumRecords" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling


                for (int idx = 0; idx < _variableDatumRecords.Count; idx++)
                {
                    sb.Append("<variableDatumRecords" + idx.ToString() + " type=\"VariableDatum\">" + System.Environment.NewLine);
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatumRecords[idx];
                    aVariableDatum.reflection(sb);
                    sb.Append("</variableDatumRecords" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</CommentReliablePdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of reflection method
Beispiel #10
0
///<summary>
///Marshal the data to the DataOutputStream.  Note: Length needs to be set before calling this method
///</summary>
        new public void marshal(DataOutputStream dos)
        {
            base.marshal(dos);
            try
            {
                dos.writeUint((uint)_requestID);
                dos.writeByte((byte)_requiredReliabilityService);
                dos.writeUshort((ushort)_pad1);
                dos.writeByte((byte)_pad2);
                dos.writeUint((uint)_fixedDatumRecords.Count);
                dos.writeUint((uint)_variableDatumRecords.Count);

                for (int idx = 0; idx < _fixedDatumRecords.Count; idx++)
                {
                    FixedDatum aFixedDatum = (FixedDatum)_fixedDatumRecords[idx];
                    aFixedDatum.marshal(dos);
                } // end of list marshalling


                for (int idx = 0; idx < _variableDatumRecords.Count; idx++)
                {
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatumRecords[idx];
                    aVariableDatum.marshal(dos);
                } // end of list marshalling
            }     // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
Beispiel #11
0
        new public int getMarshalledSize()
        {
            int marshalSize = 0;

            marshalSize = base.getMarshalledSize();
            marshalSize = marshalSize + _aggregateID.getMarshalledSize();      // _aggregateID
            marshalSize = marshalSize + 1;                                     // _forceID
            marshalSize = marshalSize + 1;                                     // _aggregateState
            marshalSize = marshalSize + _aggregateType.getMarshalledSize();    // _aggregateType
            marshalSize = marshalSize + 4;                                     // _formation
            marshalSize = marshalSize + _aggregateMarking.getMarshalledSize(); // _aggregateMarking
            marshalSize = marshalSize + _dimensions.getMarshalledSize();       // _dimensions
            marshalSize = marshalSize + _orientation.getMarshalledSize();      // _orientation
            marshalSize = marshalSize + _centerOfMass.getMarshalledSize();     // _centerOfMass
            marshalSize = marshalSize + _velocity.getMarshalledSize();         // _velocity
            marshalSize = marshalSize + 2;                                     // _numberOfDisAggregates
            marshalSize = marshalSize + 2;                                     // _numberOfDisEntities
            marshalSize = marshalSize + 2;                                     // _numberOfSilentAggregateTypes
            marshalSize = marshalSize + 2;                                     // _numberOfSilentEntityTypes
            for (int idx = 0; idx < _aggregateIDList.Count; idx++)
            {
                AggregateID listElement = (AggregateID)_aggregateIDList[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }
            for (int idx = 0; idx < _entityIDList.Count; idx++)
            {
                EntityID listElement = (EntityID)_entityIDList[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }
            marshalSize = marshalSize + 1; // _pad2
            for (int idx = 0; idx < _silentAggregateSystemList.Count; idx++)
            {
                EntityType listElement = (EntityType)_silentAggregateSystemList[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }
            for (int idx = 0; idx < _silentEntitySystemList.Count; idx++)
            {
                EntityType listElement = (EntityType)_silentEntitySystemList[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }
            marshalSize = marshalSize + 4; // _numberOfVariableDatumRecords
            for (int idx = 0; idx < _variableDatumList.Count; idx++)
            {
                VariableDatum listElement = (VariableDatum)_variableDatumList[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }

            return(marshalSize);
        }
Beispiel #12
0
        /**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(EventReportPdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_eventType == rhs._eventType))
            {
                ivarsEqual = false;
            }
            if (!(_padding1 == rhs._padding1))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfFixedDatumRecords == rhs._numberOfFixedDatumRecords))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfVariableDatumRecords == rhs._numberOfVariableDatumRecords))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _fixedDatums.Count; idx++)
            {
                FixedDatum x = (FixedDatum)_fixedDatums[idx];
                if (!(_fixedDatums[idx].Equals(rhs._fixedDatums[idx])))
                {
                    ivarsEqual = false;
                }
            }


            for (int idx = 0; idx < _variableDatums.Count; idx++)
            {
                VariableDatum x = (VariableDatum)_variableDatums[idx];
                if (!(_variableDatums[idx].Equals(rhs._variableDatums[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
Beispiel #13
0
        /**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(ActionRequestPdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_requestID == rhs._requestID))
            {
                ivarsEqual = false;
            }
            if (!(_actionID == rhs._actionID))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfFixedDatumRecords == rhs._numberOfFixedDatumRecords))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfVariableDatumRecords == rhs._numberOfVariableDatumRecords))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _fixedDatums.Count; idx++)
            {
                FixedDatum x = (FixedDatum)_fixedDatums[idx];
                if (!(_fixedDatums[idx].Equals(rhs._fixedDatums[idx])))
                {
                    ivarsEqual = false;
                }
            }


            for (int idx = 0; idx < _variableDatums.Count; idx++)
            {
                VariableDatum x = (VariableDatum)_variableDatums[idx];
                if (!(_variableDatums[idx].Equals(rhs._variableDatums[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
Beispiel #14
0
        /**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(IsGroupOfPdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_groupEntityID.Equals(rhs._groupEntityID)))
            {
                ivarsEqual = false;
            }
            if (!(_groupedEntityCategory == rhs._groupedEntityCategory))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfGroupedEntities == rhs._numberOfGroupedEntities))
            {
                ivarsEqual = false;
            }
            if (!(_pad2 == rhs._pad2))
            {
                ivarsEqual = false;
            }
            if (!(_latitude == rhs._latitude))
            {
                ivarsEqual = false;
            }
            if (!(_longitude == rhs._longitude))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _groupedEntityDescriptions.Count; idx++)
            {
                VariableDatum x = (VariableDatum)_groupedEntityDescriptions[idx];
                if (!(_groupedEntityDescriptions[idx].Equals(rhs._groupedEntityDescriptions[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
Beispiel #15
0
        new public int getMarshalledSize()
        {
            int marshalSize = 0;

            marshalSize = base.getMarshalledSize();
            marshalSize = marshalSize + _groupEntityID.getMarshalledSize(); // _groupEntityID
            marshalSize = marshalSize + 1;                                  // _groupedEntityCategory
            marshalSize = marshalSize + 1;                                  // _numberOfGroupedEntities
            marshalSize = marshalSize + 4;                                  // _pad2
            marshalSize = marshalSize + 8;                                  // _latitude
            marshalSize = marshalSize + 8;                                  // _longitude
            for (int idx = 0; idx < _groupedEntityDescriptions.Count; idx++)
            {
                VariableDatum listElement = (VariableDatum)_groupedEntityDescriptions[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }

            return(marshalSize);
        }
Beispiel #16
0
        new public int getMarshalledSize()
        {
            int marshalSize = 0;

            marshalSize = base.getMarshalledSize();
            marshalSize = marshalSize + 4;  // _numberOfFixedDatumRecords
            marshalSize = marshalSize + 4;  // _numberOfVariableDatumRecords
            for (int idx = 0; idx < _fixedDatumRecords.Count; idx++)
            {
                FixedDatum listElement = (FixedDatum)_fixedDatumRecords[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }
            for (int idx = 0; idx < _variableDatumRecords.Count; idx++)
            {
                VariableDatum listElement = (VariableDatum)_variableDatumRecords[idx];
                marshalSize = marshalSize + listElement.getMarshalledSize();
            }

            return(marshalSize);
        }
Beispiel #17
0
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<DataQueryReliablePdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<requiredReliabilityService type=\"byte\">" + _requiredReliabilityService.ToString() + "</requiredReliabilityService> " + System.Environment.NewLine);
                sb.Append("<pad1 type=\"ushort\">" + _pad1.ToString() + "</pad1> " + System.Environment.NewLine);
                sb.Append("<pad2 type=\"byte\">" + _pad2.ToString() + "</pad2> " + System.Environment.NewLine);
                sb.Append("<requestID type=\"uint\">" + _requestID.ToString() + "</requestID> " + System.Environment.NewLine);
                sb.Append("<timeInterval type=\"uint\">" + _timeInterval.ToString() + "</timeInterval> " + System.Environment.NewLine);
                sb.Append("<fixedDatumRecords type=\"uint\">" + _fixedDatumRecords.Count.ToString() + "</fixedDatumRecords> " + System.Environment.NewLine);
                sb.Append("<variableDatumRecords type=\"uint\">" + _variableDatumRecords.Count.ToString() + "</variableDatumRecords> " + System.Environment.NewLine);

                for (int idx = 0; idx < _fixedDatumRecords.Count; idx++)
                {
                    sb.Append("<fixedDatumRecords" + idx.ToString() + " type=\"FixedDatum\">" + System.Environment.NewLine);
                    FixedDatum aFixedDatum = (FixedDatum)_fixedDatumRecords[idx];
                    aFixedDatum.reflection(sb);
                    sb.Append("</fixedDatumRecords" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling


                for (int idx = 0; idx < _variableDatumRecords.Count; idx++)
                {
                    sb.Append("<variableDatumRecords" + idx.ToString() + " type=\"VariableDatum\">" + System.Environment.NewLine);
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatumRecords[idx];
                    aVariableDatum.reflection(sb);
                    sb.Append("</variableDatumRecords" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</DataQueryReliablePdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of reflection method
Beispiel #18
0
        ///<summary>
        ///Marshal the data to the DataOutputStream.  Note: Length needs to be set before calling this method
        ///</summary>
        new public void marshal(DataOutputStream dos)
        {
            base.marshal(dos);
            try
            {
                _groupEntityID.marshal(dos);
                dos.writeByte((byte)_groupedEntityCategory);
                dos.writeByte((byte)_groupedEntityDescriptions.Count);
                dos.writeUint((uint)_pad2);
                dos.writeDouble((double)_latitude);
                dos.writeDouble((double)_longitude);

                for (int idx = 0; idx < _groupedEntityDescriptions.Count; idx++)
                {
                    VariableDatum aVariableDatum = (VariableDatum)_groupedEntityDescriptions[idx];
                    aVariableDatum.marshal(dos);
                } // end of list marshalling
            }     // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
Beispiel #19
0
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<ActionRequestPdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<requestID type=\"uint\">" + _requestID.ToString() + "</requestID> " + System.Environment.NewLine);
                sb.Append("<actionID type=\"uint\">" + _actionID.ToString() + "</actionID> " + System.Environment.NewLine);
                sb.Append("<fixedDatums type=\"uint\">" + _fixedDatums.Count.ToString() + "</fixedDatums> " + System.Environment.NewLine);
                sb.Append("<variableDatums type=\"uint\">" + _variableDatums.Count.ToString() + "</variableDatums> " + System.Environment.NewLine);

                for (int idx = 0; idx < _fixedDatums.Count; idx++)
                {
                    sb.Append("<fixedDatums" + idx.ToString() + " type=\"FixedDatum\">" + System.Environment.NewLine);
                    FixedDatum aFixedDatum = (FixedDatum)_fixedDatums[idx];
                    aFixedDatum.reflection(sb);
                    sb.Append("</fixedDatums" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling


                for (int idx = 0; idx < _variableDatums.Count; idx++)
                {
                    sb.Append("<variableDatums" + idx.ToString() + " type=\"VariableDatum\">" + System.Environment.NewLine);
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatums[idx];
                    aVariableDatum.reflection(sb);
                    sb.Append("</variableDatums" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</ActionRequestPdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
Beispiel #20
0
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<EventReportPdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<eventType type=\"uint\">" + _eventType.ToString() + "</eventType> " + System.Environment.NewLine);
                sb.Append("<padding1 type=\"uint\">" + _padding1.ToString() + "</padding1> " + System.Environment.NewLine);
                sb.Append("<fixedDatums type=\"uint\">" + _fixedDatums.Count.ToString() + "</fixedDatums> " + System.Environment.NewLine);
                sb.Append("<variableDatums type=\"uint\">" + _variableDatums.Count.ToString() + "</variableDatums> " + System.Environment.NewLine);

                for (int idx = 0; idx < _fixedDatums.Count; idx++)
                {
                    sb.Append("<fixedDatums" + idx.ToString() + " type=\"FixedDatum\">" + System.Environment.NewLine);
                    FixedDatum aFixedDatum = (FixedDatum)_fixedDatums[idx];
                    aFixedDatum.reflection(sb);
                    sb.Append("</fixedDatums" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling


                for (int idx = 0; idx < _variableDatums.Count; idx++)
                {
                    sb.Append("<variableDatums" + idx.ToString() + " type=\"VariableDatum\">" + System.Environment.NewLine);
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatums[idx];
                    aVariableDatum.reflection(sb);
                    sb.Append("</variableDatums" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</EventReportPdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
Beispiel #21
0
        /**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(AggregateStatePdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_aggregateID.Equals(rhs._aggregateID)))
            {
                ivarsEqual = false;
            }
            if (!(_forceID == rhs._forceID))
            {
                ivarsEqual = false;
            }
            if (!(_aggregateState == rhs._aggregateState))
            {
                ivarsEqual = false;
            }
            if (!(_aggregateType.Equals(rhs._aggregateType)))
            {
                ivarsEqual = false;
            }
            if (!(_formation == rhs._formation))
            {
                ivarsEqual = false;
            }
            if (!(_aggregateMarking.Equals(rhs._aggregateMarking)))
            {
                ivarsEqual = false;
            }
            if (!(_dimensions.Equals(rhs._dimensions)))
            {
                ivarsEqual = false;
            }
            if (!(_orientation.Equals(rhs._orientation)))
            {
                ivarsEqual = false;
            }
            if (!(_centerOfMass.Equals(rhs._centerOfMass)))
            {
                ivarsEqual = false;
            }
            if (!(_velocity.Equals(rhs._velocity)))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfDisAggregates == rhs._numberOfDisAggregates))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfDisEntities == rhs._numberOfDisEntities))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfSilentAggregateTypes == rhs._numberOfSilentAggregateTypes))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfSilentEntityTypes == rhs._numberOfSilentEntityTypes))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _aggregateIDList.Count; idx++)
            {
                AggregateID x = (AggregateID)_aggregateIDList[idx];
                if (!(_aggregateIDList[idx].Equals(rhs._aggregateIDList[idx])))
                {
                    ivarsEqual = false;
                }
            }


            for (int idx = 0; idx < _entityIDList.Count; idx++)
            {
                EntityID x = (EntityID)_entityIDList[idx];
                if (!(_entityIDList[idx].Equals(rhs._entityIDList[idx])))
                {
                    ivarsEqual = false;
                }
            }

            if (!(_pad2 == rhs._pad2))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _silentAggregateSystemList.Count; idx++)
            {
                EntityType x = (EntityType)_silentAggregateSystemList[idx];
                if (!(_silentAggregateSystemList[idx].Equals(rhs._silentAggregateSystemList[idx])))
                {
                    ivarsEqual = false;
                }
            }


            for (int idx = 0; idx < _silentEntitySystemList.Count; idx++)
            {
                EntityType x = (EntityType)_silentEntitySystemList[idx];
                if (!(_silentEntitySystemList[idx].Equals(rhs._silentEntitySystemList[idx])))
                {
                    ivarsEqual = false;
                }
            }

            if (!(_numberOfVariableDatumRecords == rhs._numberOfVariableDatumRecords))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _variableDatumList.Count; idx++)
            {
                VariableDatum x = (VariableDatum)_variableDatumList[idx];
                if (!(_variableDatumList[idx].Equals(rhs._variableDatumList[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
        /**
         * Compares for reference equality and value equality.
         */
        public bool equals(VariableDatum rhs)
        {
            bool ivarsEqual = true;

            if(rhs.GetType() != this.GetType())
                return false;

            if( ! (_variableDatumID == rhs._variableDatumID)) ivarsEqual = false;
            if( ! (_variableDatumLength == rhs._variableDatumLength)) ivarsEqual = false;

            if( ! (_variableDatums.Count == rhs._variableDatums.Count)) ivarsEqual = false;
            if(ivarsEqual)
            {
                for(int idx = 0; idx < _variableDatums.Count; idx++)
                {
                    if( ! ( _variableDatums[idx].Equals(rhs._variableDatums[idx]))) ivarsEqual = false;
                }
            }

            return ivarsEqual;
        }
        public new void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _groupEntityID.unmarshal(dis);
                _groupedEntityCategory = dis.readByte();
                _numberOfGroupedEntities = dis.readByte();
                _pad2 = dis.readUint();
                _latitude = dis.readDouble();
                _longitude = dis.readDouble();
                for(int idx = 0; idx < _numberOfGroupedEntities; idx++)
                {
                    VariableDatum anX = new VariableDatum();
                    anX.unmarshal(dis);
                    _groupedEntityDescriptions.Add(anX);
                };

            } // end try
            catch(Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        }
        public new void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _requestID = dis.readUint();
                _padding1 = dis.readUint();
                _numberOfFixedDatumRecords = dis.readUint();
                _numberOfVariableDatumRecords = dis.readUint();
                for(int idx = 0; idx < _numberOfFixedDatumRecords; idx++)
                {
                    FixedDatum anX = new FixedDatum();
                    anX.unmarshal(dis);
                    _fixedDatums.Add(anX);
                };

                for(int idx = 0; idx < _numberOfVariableDatumRecords; idx++)
                {
                    VariableDatum anX = new VariableDatum();
                    anX.unmarshal(dis);
                    _variableDatums.Add(anX);
                };

            } // end try
            catch(Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        }
Beispiel #25
0
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<AggregateStatePdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<aggregateID>" + System.Environment.NewLine);
                _aggregateID.reflection(sb);
                sb.Append("</aggregateID>" + System.Environment.NewLine);
                sb.Append("<forceID type=\"byte\">" + _forceID.ToString() + "</forceID> " + System.Environment.NewLine);
                sb.Append("<aggregateState type=\"byte\">" + _aggregateState.ToString() + "</aggregateState> " + System.Environment.NewLine);
                sb.Append("<aggregateType>" + System.Environment.NewLine);
                _aggregateType.reflection(sb);
                sb.Append("</aggregateType>" + System.Environment.NewLine);
                sb.Append("<formation type=\"uint\">" + _formation.ToString() + "</formation> " + System.Environment.NewLine);
                sb.Append("<aggregateMarking>" + System.Environment.NewLine);
                _aggregateMarking.reflection(sb);
                sb.Append("</aggregateMarking>" + System.Environment.NewLine);
                sb.Append("<dimensions>" + System.Environment.NewLine);
                _dimensions.reflection(sb);
                sb.Append("</dimensions>" + System.Environment.NewLine);
                sb.Append("<orientation>" + System.Environment.NewLine);
                _orientation.reflection(sb);
                sb.Append("</orientation>" + System.Environment.NewLine);
                sb.Append("<centerOfMass>" + System.Environment.NewLine);
                _centerOfMass.reflection(sb);
                sb.Append("</centerOfMass>" + System.Environment.NewLine);
                sb.Append("<velocity>" + System.Environment.NewLine);
                _velocity.reflection(sb);
                sb.Append("</velocity>" + System.Environment.NewLine);
                sb.Append("<aggregateIDList type=\"ushort\">" + _aggregateIDList.Count.ToString() + "</aggregateIDList> " + System.Environment.NewLine);
                sb.Append("<entityIDList type=\"ushort\">" + _entityIDList.Count.ToString() + "</entityIDList> " + System.Environment.NewLine);
                sb.Append("<silentAggregateSystemList type=\"ushort\">" + _silentAggregateSystemList.Count.ToString() + "</silentAggregateSystemList> " + System.Environment.NewLine);
                sb.Append("<silentEntitySystemList type=\"ushort\">" + _silentEntitySystemList.Count.ToString() + "</silentEntitySystemList> " + System.Environment.NewLine);

                for (int idx = 0; idx < _aggregateIDList.Count; idx++)
                {
                    sb.Append("<aggregateIDList" + idx.ToString() + " type=\"AggregateID\">" + System.Environment.NewLine);
                    AggregateID aAggregateID = (AggregateID)_aggregateIDList[idx];
                    aAggregateID.reflection(sb);
                    sb.Append("</aggregateIDList" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling


                for (int idx = 0; idx < _entityIDList.Count; idx++)
                {
                    sb.Append("<entityIDList" + idx.ToString() + " type=\"EntityID\">" + System.Environment.NewLine);
                    EntityID aEntityID = (EntityID)_entityIDList[idx];
                    aEntityID.reflection(sb);
                    sb.Append("</entityIDList" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("<pad2 type=\"byte\">" + _pad2.ToString() + "</pad2> " + System.Environment.NewLine);

                for (int idx = 0; idx < _silentAggregateSystemList.Count; idx++)
                {
                    sb.Append("<silentAggregateSystemList" + idx.ToString() + " type=\"EntityType\">" + System.Environment.NewLine);
                    EntityType aEntityType = (EntityType)_silentAggregateSystemList[idx];
                    aEntityType.reflection(sb);
                    sb.Append("</silentAggregateSystemList" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling


                for (int idx = 0; idx < _silentEntitySystemList.Count; idx++)
                {
                    sb.Append("<silentEntitySystemList" + idx.ToString() + " type=\"EntityType\">" + System.Environment.NewLine);
                    EntityType aEntityType = (EntityType)_silentEntitySystemList[idx];
                    aEntityType.reflection(sb);
                    sb.Append("</silentEntitySystemList" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("<variableDatumList type=\"uint\">" + _variableDatumList.Count.ToString() + "</variableDatumList> " + System.Environment.NewLine);

                for (int idx = 0; idx < _variableDatumList.Count; idx++)
                {
                    sb.Append("<variableDatumList" + idx.ToString() + " type=\"VariableDatum\">" + System.Environment.NewLine);
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatumList[idx];
                    aVariableDatum.reflection(sb);
                    sb.Append("</variableDatumList" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</AggregateStatePdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
Beispiel #26
0
        } // end of marshal method

        new public void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _aggregateID.unmarshal(dis);
                _forceID        = dis.readByte();
                _aggregateState = dis.readByte();
                _aggregateType.unmarshal(dis);
                _formation = dis.readUint();
                _aggregateMarking.unmarshal(dis);
                _dimensions.unmarshal(dis);
                _orientation.unmarshal(dis);
                _centerOfMass.unmarshal(dis);
                _velocity.unmarshal(dis);
                _numberOfDisAggregates        = dis.readUshort();
                _numberOfDisEntities          = dis.readUshort();
                _numberOfSilentAggregateTypes = dis.readUshort();
                _numberOfSilentEntityTypes    = dis.readUshort();
                for (int idx = 0; idx < _numberOfDisAggregates; idx++)
                {
                    AggregateID anX = new AggregateID();
                    anX.unmarshal(dis);
                    _aggregateIDList.Add(anX);
                }
                ;

                for (int idx = 0; idx < _numberOfDisEntities; idx++)
                {
                    EntityID anX = new EntityID();
                    anX.unmarshal(dis);
                    _entityIDList.Add(anX);
                }
                ;

                _pad2 = dis.readByte();
                for (int idx = 0; idx < _numberOfSilentAggregateTypes; idx++)
                {
                    EntityType anX = new EntityType();
                    anX.unmarshal(dis);
                    _silentAggregateSystemList.Add(anX);
                }
                ;

                for (int idx = 0; idx < _numberOfSilentEntityTypes; idx++)
                {
                    EntityType anX = new EntityType();
                    anX.unmarshal(dis);
                    _silentEntitySystemList.Add(anX);
                }
                ;

                _numberOfVariableDatumRecords = dis.readUint();
                for (int idx = 0; idx < _numberOfVariableDatumRecords; idx++)
                {
                    VariableDatum anX = new VariableDatum();
                    anX.unmarshal(dis);
                    _variableDatumList.Add(anX);
                }
                ;
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of unmarshal method
Beispiel #27
0
///<summary>
///Marshal the data to the DataOutputStream.  Note: Length needs to be set before calling this method
///</summary>
        new public void marshal(DataOutputStream dos)
        {
            base.marshal(dos);
            try
            {
                _aggregateID.marshal(dos);
                dos.writeByte((byte)_forceID);
                dos.writeByte((byte)_aggregateState);
                _aggregateType.marshal(dos);
                dos.writeUint((uint)_formation);
                _aggregateMarking.marshal(dos);
                _dimensions.marshal(dos);
                _orientation.marshal(dos);
                _centerOfMass.marshal(dos);
                _velocity.marshal(dos);
                dos.writeUshort((ushort)_aggregateIDList.Count);
                dos.writeUshort((ushort)_entityIDList.Count);
                dos.writeUshort((ushort)_silentAggregateSystemList.Count);
                dos.writeUshort((ushort)_silentEntitySystemList.Count);

                for (int idx = 0; idx < _aggregateIDList.Count; idx++)
                {
                    AggregateID aAggregateID = (AggregateID)_aggregateIDList[idx];
                    aAggregateID.marshal(dos);
                } // end of list marshalling


                for (int idx = 0; idx < _entityIDList.Count; idx++)
                {
                    EntityID aEntityID = (EntityID)_entityIDList[idx];
                    aEntityID.marshal(dos);
                } // end of list marshalling

                dos.writeByte((byte)_pad2);

                for (int idx = 0; idx < _silentAggregateSystemList.Count; idx++)
                {
                    EntityType aEntityType = (EntityType)_silentAggregateSystemList[idx];
                    aEntityType.marshal(dos);
                } // end of list marshalling


                for (int idx = 0; idx < _silentEntitySystemList.Count; idx++)
                {
                    EntityType aEntityType = (EntityType)_silentEntitySystemList[idx];
                    aEntityType.marshal(dos);
                } // end of list marshalling

                dos.writeUint((uint)_variableDatumList.Count);

                for (int idx = 0; idx < _variableDatumList.Count; idx++)
                {
                    VariableDatum aVariableDatum = (VariableDatum)_variableDatumList[idx];
                    aVariableDatum.marshal(dos);
                } // end of list marshalling
            }     // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
        public new void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
               _aggregateID.unmarshal(dis);
               _forceID = dis.readByte();
               _aggregateState = dis.readByte();
               _aggregateType.unmarshal(dis);
               _formation = dis.readUint();
               _aggregateMarking.unmarshal(dis);
               _dimensions.unmarshal(dis);
               _orientation.unmarshal(dis);
               _centerOfMass.unmarshal(dis);
               _velocity.unmarshal(dis);
               _numberOfDisAggregates = dis.readUshort();
               _numberOfDisEntities = dis.readUshort();
               _numberOfSilentAggregateTypes = dis.readUshort();
               _numberOfSilentEntityTypes = dis.readUshort();
            for(int idx = 0; idx < _numberOfDisAggregates; idx++)
            {
               AggregateID anX = new AggregateID();
            anX.unmarshal(dis);
            _aggregateIDList.Add(anX);
            };

            for(int idx = 0; idx < _numberOfDisEntities; idx++)
            {
               EntityID anX = new EntityID();
            anX.unmarshal(dis);
            _entityIDList.Add(anX);
            };

               _pad2 = dis.readByte();
            for(int idx = 0; idx < _numberOfSilentAggregateTypes; idx++)
            {
               EntityType anX = new EntityType();
            anX.unmarshal(dis);
            _silentAggregateSystemList.Add(anX);
            };

            for(int idx = 0; idx < _numberOfSilentEntityTypes; idx++)
            {
               EntityType anX = new EntityType();
            anX.unmarshal(dis);
            _silentEntitySystemList.Add(anX);
            };

               _numberOfVariableDatumRecords = dis.readUint();
            for(int idx = 0; idx < _numberOfVariableDatumRecords; idx++)
            {
               VariableDatum anX = new VariableDatum();
            anX.unmarshal(dis);
            _variableDatumList.Add(anX);
            };

            } // end try
               catch(Exception e)
            {
              Trace.WriteLine(e);
              Trace.Flush();
            }
        }
        public new void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
               _requiredReliabilityService = dis.readByte();
               _pad1 = dis.readUshort();
               _pad2 = dis.readByte();
               _requestID = dis.readUint();
               _timeInterval = dis.readUint();
               _numberOfFixedDatumRecords = dis.readUint();
               _numberOfVariableDatumRecords = dis.readUint();
            for(int idx = 0; idx < _numberOfFixedDatumRecords; idx++)
            {
               FixedDatum anX = new FixedDatum();
            anX.unmarshal(dis);
            _fixedDatumRecords.Add(anX);
            };

            for(int idx = 0; idx < _numberOfVariableDatumRecords; idx++)
            {
               VariableDatum anX = new VariableDatum();
            anX.unmarshal(dis);
            _variableDatumRecords.Add(anX);
            };

            } // end try
               catch(Exception e)
            {
              Trace.WriteLine(e);
              Trace.Flush();
            }
        }
        /**
          * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
          */
        public bool equals(VariableDatum rhs)
        {
            bool ivarsEqual = true;

            if(rhs.GetType() != this.GetType())
            return false;

             if( ! (_variableDatumID == rhs._variableDatumID)) ivarsEqual = false;
             if( ! (_variableDatumLength == rhs._variableDatumLength)) ivarsEqual = false;

             for(int idx = 0; idx < _variableDatums.Count; idx++)
             {
            EightByteChunk x = (EightByteChunk)_variableDatums[idx];
            if( ! ( _variableDatums[idx].Equals(rhs._variableDatums[idx]))) ivarsEqual = false;
             }

            return ivarsEqual;
        }