public override int GetHashCode()
        {
            int hash = 1;

            if (msgCase_ == MsgOneofCase.SessionRequestMessage)
            {
                hash ^= SessionRequestMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.SessionReplyMessage)
            {
                hash ^= SessionReplyMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.TransferRequestMessage)
            {
                hash ^= TransferRequestMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.TransferReplyMessage)
            {
                hash ^= TransferReplyMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.TransferDispatchMessage)
            {
                hash ^= TransferDispatchMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.TransaferConfirmationMessage)
            {
                hash ^= TransaferConfirmationMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.TerminationMessage)
            {
                hash ^= TerminationMessage.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.ReservedField)
            {
                hash ^= ReservedField.GetHashCode();
            }
            if (Signature.Length != 0)
            {
                hash ^= Signature.GetHashCode();
            }
            hash ^= (int)msgCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
        public void MergeFrom(ProtoMessageWrapper other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Signature.Length != 0)
            {
                Signature = other.Signature;
            }
            switch (other.MsgCase)
            {
            case MsgOneofCase.SessionRequestMessage:
                if (SessionRequestMessage == null)
                {
                    SessionRequestMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoSessionRequestMessage();
                }
                SessionRequestMessage.MergeFrom(other.SessionRequestMessage);
                break;

            case MsgOneofCase.SessionReplyMessage:
                if (SessionReplyMessage == null)
                {
                    SessionReplyMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoSessionReplyMessage();
                }
                SessionReplyMessage.MergeFrom(other.SessionReplyMessage);
                break;

            case MsgOneofCase.TransferRequestMessage:
                if (TransferRequestMessage == null)
                {
                    TransferRequestMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoTransferRequestMessage();
                }
                TransferRequestMessage.MergeFrom(other.TransferRequestMessage);
                break;

            case MsgOneofCase.TransferReplyMessage:
                if (TransferReplyMessage == null)
                {
                    TransferReplyMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoTransferReplyMessage();
                }
                TransferReplyMessage.MergeFrom(other.TransferReplyMessage);
                break;

            case MsgOneofCase.TransferDispatchMessage:
                if (TransferDispatchMessage == null)
                {
                    TransferDispatchMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoTransferDispatchMessage();
                }
                TransferDispatchMessage.MergeFrom(other.TransferDispatchMessage);
                break;

            case MsgOneofCase.TransaferConfirmationMessage:
                if (TransaferConfirmationMessage == null)
                {
                    TransaferConfirmationMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoTransferConfirmationMessage();
                }
                TransaferConfirmationMessage.MergeFrom(other.TransaferConfirmationMessage);
                break;

            case MsgOneofCase.TerminationMessage:
                if (TerminationMessage == null)
                {
                    TerminationMessage = new global::OpenVASP.ProtocolMessages.Messages.ProtoTerminationMessage();
                }
                TerminationMessage.MergeFrom(other.TerminationMessage);
                break;

            case MsgOneofCase.ReservedField:
                ReservedField = other.ReservedField;
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }