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

            base.LooseMarshal(wireFormat, o, dataOut);
            LooseMarshalString(info.RemoteBlobUrl, dataOut);
            LooseMarshalString(info.MimeType, dataOut);
            dataOut.Write(info.DeletedByBroker);
        }
        //
        // 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);

            ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;

            TightMarshalString2(info.RemoteBlobUrl, dataOut, bs);
            TightMarshalString2(info.MimeType, dataOut, bs);
            bs.ReadBoolean();
        }
        //
        // 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);

            ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;

            info.RemoteBlobUrl   = TightUnmarshalString(dataIn, bs);
            info.MimeType        = TightUnmarshalString(dataIn, bs);
            info.DeletedByBroker = bs.ReadBoolean();
        }
        //
        // Un-marshal an object instance from the data input stream
        //
        public override void LooseUnmarshal(OpenWireFormat wireFormat, Object o, BinaryReader dataIn)
        {
            base.LooseUnmarshal(wireFormat, o, dataIn);

            ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;

            info.RemoteBlobUrl   = LooseUnmarshalString(dataIn);
            info.MimeType        = LooseUnmarshalString(dataIn);
            info.DeletedByBroker = dataIn.ReadBoolean();
        }
        //
        // Write the booleans that this object uses to a BooleanStream
        //
        public override int TightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs)
        {
            ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;

            int rc = base.TightMarshal1(wireFormat, o, bs);

            rc += TightMarshalString1(info.RemoteBlobUrl, bs);
            rc += TightMarshalString1(info.MimeType, bs);
            bs.WriteBoolean(info.DeletedByBroker);

            return(rc + 0);
        }