コード例 #1
0
ファイル: MAMA.cs プロジェクト: vitya-maleyev/OpenMAMA
        /// <summary>
        /// Sets the log callback, this will be invoked every time a log is written in MAMA.
        /// </summary>
        /// <param name="callback">
        /// The callback to invoke.
        /// </param>
        public static void setLogCallback(MamaLogFileCallback2 callback)
        {
            // Dispose the old callback wrapper
            if (m_logFileCbWrapper != null)
            {
                ((IDisposable)m_logFileCbWrapper).Dispose();
                m_logFileCbWrapper = null;
            }

            // Null is allowed to clear the callback
            if (callback == null)
            {
                // Call the native function with null
                MamaWrapper.CheckResultCode(NativeMethods.mama_setLogCallback2(null));
            }

            else
            {
                // Create a new callback wrapper
                m_logFileCbWrapper = new MamaCallbackWrapper <MamaLogFileCallback2, LogFileCallbackDelegate>(
                    callback,
                    null,
                    new LogFileCallbackDelegate(onNativeLogCallback));

                // Call the native function
                MamaWrapper.CheckResultCode(NativeMethods.mama_setLogCallback2((LogFileCallbackDelegate)m_logFileCbWrapper.NativeDelegate));
            }
        }
コード例 #2
0
ファイル: MAMA.cs プロジェクト: vitya-maleyev/OpenMAMA
        /// <summary>
        /// This handler is called by the C layer whenever a log comes in, it will
        /// invoke the managed object.
        /// </summary>
        /// <param name="level">
        /// The log level.
        /// </param>
        /// <param name="message">
        /// The log message.
        /// </param>
        public static void onNativeLogCallback(int level, string message)
        {
            // Get the callback from the static member variable
            MamaLogFileCallback2 callback = (MamaLogFileCallback2)m_logFileCbWrapper.Callback;

            if (callback != null)
            {
                // Invoke the delegate
                callback.onLog((MamaLogLevel)level, message);
            }
        }
コード例 #3
0
ファイル: MAMA.cs プロジェクト: OpenMAMA/OpenMAMA
        /// <summary>
        /// Sets the log callback, this will be invoked every time a log is written in MAMA.
        /// </summary>
        /// <param name="callback">
        /// The callback to invoke.
        /// </param>
        public static void setLogCallback(MamaLogFileCallback2 callback)
        {
            // Dispose the old callback wrapper
            if (m_logFileCbWrapper != null)
            {
                ((IDisposable)m_logFileCbWrapper).Dispose();
                m_logFileCbWrapper = null;
            }

            // Null is allowed to clear the callback
            if (callback == null)
            {
                // Call the native function with null
                MamaWrapper.CheckResultCode(NativeMethods.mama_setLogCallback2(null));
            }

            else
            {
                // Create a new callback wrapper
                m_logFileCbWrapper = new MamaCallbackWrapper<MamaLogFileCallback2, LogFileCallbackDelegate>(
                        callback,
                        null,
                        new LogFileCallbackDelegate(onNativeLogCallback));

                // Call the native function
                MamaWrapper.CheckResultCode(NativeMethods.mama_setLogCallback2((LogFileCallbackDelegate)m_logFileCbWrapper.NativeDelegate));
            }
        }