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);
        }