/// <summary>
 /// Invoked when a message arrives
 /// </summary>
 /// <param name="subscription">
 /// The subscription where the message has arrived.
 /// </param>
 /// <param name="message">
 /// The message.
 /// </param>
 void MamaBasicSubscriptionCallback.onMsg(MamaBasicSubscription subscription, MamaMsg message)
 {
     if (mCallback != null)
     {
         mCallback.onMsg((MamaSubscription)subscription, message);
     }
 }
            /// <summary>
            /// This function will invoke the message callback on the user supplied callback implementation.
            /// </summary>
            /// <param name="nativeMsg">
            /// The native MAMA message.
            /// </param>
            internal override void InvokeMessage(IntPtr nativeMsg)
            {
                if (null != mCallback)
                {
                    // If the re-usable message hasn't been created yet then do so now
                    if (mReusableMsg == null)
                    {
                        mReusableMsg = new MamaMsg(nativeMsg);
                    }

                    else
                    {
                        mReusableMsg.setNativeHandle(nativeMsg);
                    }

                    // Invoke the callback
                    mCallback.onMsg(mSubscription, mReusableMsg);
                }
            }