/// <summary> /// Set callback for log max size exceeded. /// Applies only to USER policy. /// </summary> /// <param name="callback"> /// The callback object to invoke whenever the log size is exceeded. /// </param> public static void setLogSizeCb(MamaLogFileCallback callback) { // Dispose the old callback wrapper if (m_logSizeCbWrapper != null) { ((IDisposable)m_logSizeCbWrapper).Dispose(); m_logSizeCbWrapper = null; } // Null is allowed to clear the callback if (callback == null) { // Call the native function with null MamaWrapper.CheckResultCode(NativeMethods.mama_setLogSizeCb(null)); } else { // Create a new callback wrapper m_logSizeCbWrapper = new MamaCallbackWrapper <MamaLogFileCallback, LogSizeCallbackDelegate>( callback, null, new LogSizeCallbackDelegate(onNativeLogSizeExceeded)); // Call the native function MamaWrapper.CheckResultCode(NativeMethods.mama_setLogSizeCb((LogSizeCallbackDelegate)m_logSizeCbWrapper.NativeDelegate)); } }
/// <summary> /// This event handler is called whenever the log size is exceeded. /// </summary> private static void onNativeLogSizeExceeded() { // Get the callback from the static member variable MamaLogFileCallback callback = (MamaLogFileCallback)m_logSizeCbWrapper.Callback; if (callback != null) { // Invoke the delegate callback.onLogSizeExceeded(); } }
/// <summary> /// Set callback for log max size exceeded. /// Applies only to USER policy. /// </summary> /// <param name="callback"> /// The callback object to invoke whenever the log size is exceeded. /// </param> public static void setLogSizeCb(MamaLogFileCallback callback) { // Dispose the old callback wrapper if (m_logSizeCbWrapper != null) { ((IDisposable)m_logSizeCbWrapper).Dispose(); m_logSizeCbWrapper = null; } // Null is allowed to clear the callback if (callback == null) { // Call the native function with null MamaWrapper.CheckResultCode(NativeMethods.mama_setLogSizeCb(null)); } else { // Create a new callback wrapper m_logSizeCbWrapper = new MamaCallbackWrapper<MamaLogFileCallback, LogSizeCallbackDelegate>( callback, null, new LogSizeCallbackDelegate(onNativeLogSizeExceeded)); // Call the native function MamaWrapper.CheckResultCode(NativeMethods.mama_setLogSizeCb((LogSizeCallbackDelegate)m_logSizeCbWrapper.NativeDelegate)); } }