//
        // Write a object instance to data output stream
        //
        public override void LooseMarshal(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut)
        {
            JournalTopicAck info = (JournalTopicAck)o;

            base.LooseMarshal(wireFormat, o, dataOut);
            LooseMarshalNestedObject(wireFormat, (DataStructure)info.Destination, dataOut);
            LooseMarshalNestedObject(wireFormat, (DataStructure)info.MessageId, dataOut);
            LooseMarshalLong(wireFormat, info.MessageSequenceId, dataOut);
            LooseMarshalString(info.SubscritionName, dataOut);
            LooseMarshalString(info.ClientId, dataOut);
            LooseMarshalNestedObject(wireFormat, (DataStructure)info.TransactionId, dataOut);
        }
        // 
        // Write a object instance to data output stream
        //
        public override void TightMarshal2(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut, BooleanStream bs)
        {
            base.TightMarshal2(wireFormat, o, dataOut, bs);

            JournalTopicAck info = (JournalTopicAck)o;
            TightMarshalNestedObject2(wireFormat, (DataStructure)info.Destination, dataOut, bs);
            TightMarshalNestedObject2(wireFormat, (DataStructure)info.MessageId, dataOut, bs);
            TightMarshalLong2(wireFormat, info.MessageSequenceId, dataOut, bs);
            TightMarshalString2(info.SubscritionName, dataOut, bs);
            TightMarshalString2(info.ClientId, dataOut, bs);
            TightMarshalNestedObject2(wireFormat, (DataStructure)info.TransactionId, dataOut, bs);
        }
        // 
        // Un-marshal an object instance from the data input stream
        // 
        public override void TightUnmarshal(OpenWireFormat wireFormat, Object o, BinaryReader dataIn, BooleanStream bs) 
        {
            base.TightUnmarshal(wireFormat, o, dataIn, bs);

            JournalTopicAck info = (JournalTopicAck)o;
            info.Destination = (ActiveMQDestination) TightUnmarshalNestedObject(wireFormat, dataIn, bs);
            info.MessageId = (MessageId) TightUnmarshalNestedObject(wireFormat, dataIn, bs);
            info.MessageSequenceId = TightUnmarshalLong(wireFormat, dataIn, bs);
            info.SubscritionName = TightUnmarshalString(dataIn, bs);
            info.ClientId = TightUnmarshalString(dataIn, bs);
            info.TransactionId = (TransactionId) TightUnmarshalNestedObject(wireFormat, dataIn, bs);
        }
        //
        // Write the booleans that this object uses to a BooleanStream
        //
        public override int TightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs)
        {
            JournalTopicAck info = (JournalTopicAck)o;

            int rc = base.TightMarshal1(wireFormat, o, bs);
        rc += TightMarshalNestedObject1(wireFormat, (DataStructure)info.Destination, bs);
        rc += TightMarshalNestedObject1(wireFormat, (DataStructure)info.MessageId, bs);
            rc += TightMarshalLong1(wireFormat, info.MessageSequenceId, bs);
            rc += TightMarshalString1(info.SubscritionName, bs);
            rc += TightMarshalString1(info.ClientId, bs);
        rc += TightMarshalNestedObject1(wireFormat, (DataStructure)info.TransactionId, bs);

            return rc + 0;
        }