public InstanceMethodSignalHandler( BindingId signalId, SignalManager manager, InjectContext lookupContext, Func <THandler, Action> methodGetter) : base(signalId, manager, lookupContext) { _methodGetter = methodGetter; }
void Construct(SignalManager manager, SignalSettings settings, BindInfo bindInfo) { _manager = manager; SignalId = new BindingId(this.GetType(), bindInfo.Identifier); Settings = settings; }
public void FinalizeBinding(DiContainer container) { if (BindInfo.ContractTypes.IsEmpty()) { // We could assert her instead but it is nice when used with things like // BindInterfaces() (and there aren't any interfaces) to allow // interfaces to be added later return; } OnFinalizeBinding(container); if (BindInfo.NonLazy) { // Note that we can't simply use container.BindRootResolve here because // binding finalizers must only use RegisterProvider to allow cloning / bind // inheritance to work properly var bindingId = new BindingId( typeof(object), DiContainer.DependencyRootIdentifier); foreach (var contractType in BindInfo.ContractTypes) { container.RegisterProvider( bindingId, null, new ResolveProvider( contractType, container, BindInfo.Identifier, false, // We always want to only use local here so that we can use // NonLazy() inside subcontainers InjectSources.Local)); } } }
public StaticMethodWithInstanceSignalHandler( BindingId signalId, SignalManager manager, InjectContext lookupContext, Action <THandler> method) : base(signalId, manager, lookupContext) { _method = method; }
public InstanceMethodSignalHandlerBase( BindingId signalId, SignalManager manager, InjectContext lookupContext) : base(signalId, manager) { Assert.IsEqual(lookupContext.MemberType, typeof(THandler)); _lookupContext = lookupContext; }
List <ISignalHandler> GetList(BindingId signalType) { List <ISignalHandler> handlers; if (!_signalHandlers.TryGetValue(signalType, out handlers)) { handlers = new List <ISignalHandler>(); _signalHandlers.Add(signalType, handlers); } return(handlers); }
// Returns true the signal was handled public bool Trigger(BindingId signalType, object[] args) { var handlers = GetList(signalType); if (handlers.Count == 0) { return(false); } #if UNITY_EDITOR && ZEN_PROFILING_ENABLED using (ProfileBlock.Start("Signal '{0}'", signalType)) #endif { foreach (var handler in handlers) { handler.Execute(args); } } return(true); }
public SignalHandlerBase( BindingId signalId, SignalManager manager) { _manager = manager; _signalId = signalId; }
public void Unregister(BindingId signalType, ISignalHandler handler) { GetList(signalType).RemoveWithConfirm(handler); }
public void Register(BindingId signalType, ISignalHandler handler) { GetList(signalType).Add(handler); }
public bool IsHandlerRegistered(BindingId signalType) { return(GetList(signalType).Count > 0); }
public int GetNumHandlers(BindingId signalType) { return(GetList(signalType).Count()); }
public StaticMethodSignalHandler( BindingId signalId, SignalManager manager, Action method) : base(signalId, manager) { _method = method; }