public ISignalOrPortDescriptor GetSignal(EBinderFlags flags, EPortUsage portUsage, string name, string domainID, object initialValue) { if (portUsage == EPortUsage.Clock) { return(FindClock(domainID).Descriptor); } else if (portUsage == EPortUsage.State) { throw new NotSupportedException("State signal is not supported by default auto-binder"); } else { if (flags.HasFlag(EBinderFlags.ExistingSignal)) { var result = _host.Descriptor.FindSignal(name); if (result != null) { return(null); } } if (flags.HasFlag(EBinderFlags.CreateNewPort)) { EFlowDirection dir = EFlowDirection.In; if (flags.HasFlag(EBinderFlags.In)) { dir = EFlowDirection.In; } if (flags.HasFlag(EBinderFlags.Out)) { dir = EFlowDirection.Out; } if (flags.HasFlag(EBinderFlags.InOut)) { dir = EFlowDirection.InOut; } int id = _id++; var port = _host.Descriptor.CreatePort("agp" + id + "_" + name, dir, TypeDescriptor.GetTypeOf(initialValue)); return(port); } if (flags.HasFlag(EBinderFlags.CreateNewSignal)) { int id = _id++; var signal = _host.Descriptor.CreateSignalInstance("ags" + id + "_" + name, TypeDescriptor.GetTypeOf(initialValue)); return(signal); } return(null); } }
public ISignalOrPortDescriptor GetSignal(EBinderFlags flags, EPortUsage portUsage, string name, string domainID, object initialValue) { return(_orgBinder.GetSignal(flags, portUsage, name, domainID, initialValue)); }
public ISignalOrPortDescriptor GetSignal(EBinderFlags flags, EPortUsage portUsage, string name, string domainID, object initialValue) { return _orgBinder.GetSignal(flags, portUsage, name, domainID, initialValue); }
/// <summary> /// Retrieves an existing or creates a new typed signal/port, depending on specified flags. /// </summary> /// <typeparam name="T">type of signal data</typeparam> /// <param name="binder">binder service</param> /// <param name="flags">creation flags</param> /// <param name="portUsage">intended usage</param> /// <param name="portName">desired name</param> /// <param name="domainID">reserved for future extensions</param> /// <param name="initialValue">initial data value</param> public static Signal <T> GetSignal <T>(this IAutoBinder binder, EBinderFlags flags, EPortUsage portUsage, string portName, string domainID, T initialValue) { return((Signal <T>)binder.GetSignal(flags, portUsage, portName, domainID, initialValue)); }