/// <summary> /// Method to unregister an interceptor /// </summary> /// <param name="direction">Defines if interceptor is for: publish or subscribe</param> /// <param name="registrationGuid">Goid which was returned from the register call</param> public static void UnRegister(InterceptDirection direction, Guid registrationGuid) { if (direction != InterceptDirection.Publish && direction != InterceptDirection.Subscribe) { return; } if (direction == InterceptDirection.Subscribe) { if (subscribeRegistrationGuid == registrationGuid) { subscribeInterceptor = null; subscribeRegistrationGuid = Guid.Empty; } } else { if (publishRegistrationGuid == registrationGuid) { publishInterceptor = null; publishRegistrationGuid = Guid.Empty; } } return; }
/// <summary> /// Method used to register an interceptor with Wsp. Only one interceptor is permitted. /// </summary> /// <param name="direction">Defines the direction the interceptor is registering for: publish or subscribe</param> /// <param name="interceptor">Delegate which Wsp will call for interception</param> /// <param name="onNextPrivate">Delegate to publish events which bypass interceptor logic</param> /// <returns>Guid needed to unregister</returns> public static Guid Register(InterceptDirection direction, InterceptorDelegate interceptor, out OnNextPrivate onNextPrivate) { WspEventPublish eventPublish = new WspEventPublish(); onNextPrivate = eventPublish.OnNextPrivate; if (direction != InterceptDirection.Publish && direction != InterceptDirection.Subscribe) { onNextPrivate = null; return(Guid.Empty); } if (direction == InterceptDirection.Subscribe) { if (subscribeRegistrationGuid == Guid.Empty) { subscribeInterceptor = interceptor; subscribeRegistrationGuid = Guid.NewGuid(); return(subscribeRegistrationGuid); } else { onNextPrivate = null; return(Guid.Empty); } } else { if (publishRegistrationGuid == Guid.Empty) { publishInterceptor = interceptor; publishRegistrationGuid = Guid.NewGuid(); return(publishRegistrationGuid); } else { onNextPrivate = null; return(Guid.Empty); } } }