// GetCompatiblePortsをオーバーライドする public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); compatiblePorts.AddRange(ports.ToList().Where(port => { // 同じノードには繋げない if (startPort.node == port.node) { return(false); } // Input同士、Output同士は繋げない if (port.direction == startPort.direction) { return(false); } // ポートの型が一致していない場合は繋げない if (port.portType != startPort.portType) { return(false); } return(true); })); return(compatiblePorts); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { return(ports .ToList() .Where(port => port.direction != startPort.direction && port.node != startPort.node) .ToList()); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); compatiblePorts.AddRange(ports.ToList().Where(p => { var portView = p as PortView; if (portView.owner == (startPort as PortView).owner) { return(false); } if (p.direction == startPort.direction) { return(false); } //Check for type assignability if (!BaseGraph.TypesAreConnectable(startPort.portType, p.portType)) { return(false); } //Check if the edge already exists if (portView.GetEdges().Any(e => e.input == startPort || e.output == startPort)) { return(false); } return(true); })); return(compatiblePorts); }
public override List <PortView> GetCompatiblePorts(PortView startPort, NodeAdapter nodeAdapter) { var compatible = new List <PortView>(); ports.ForEach(p => { if (startPort == p) { return; } if (startPort.node == p.node) { return; } if (startPort.direction == p.direction) { return; } if (p.direction == Direction.Input && !startPort.portType.IsCastableTo(p.portType, true)) { return; } if (p.direction == Direction.Output && !p.portType.IsCastableTo(startPort.portType, true)) { return; } compatible.Add(p); }); return(compatible); }
public void When_NodeExt_Has_Alternate_Network_Configured_Use_External_Hostname(string networkType, string expected) { var node = new Node(); var nodeExt = new NodesExt { Hostname = "default", AlternateAddresses = new AlternateAddressesConfig { External = new ExternalAddressesConfig { Hostname = "external" } } }; var bucketConfig = new BucketConfig { NetworkType = networkType, SurrogateHost = expected }; var adapter = new NodeAdapter(node, nodeExt, bucketConfig); Assert.Equal(expected, adapter.Hostname); }
public void When_NodeExt_Has_Alternate_Network_Configured_Use_External_Hostname(string networkType, string expected) { var node = new Node(); var nodeExt = new NodesExt { Hostname = "default", AlternateAddresses = new Dictionary <string, ExternalAddressesConfig> { { "external", new ExternalAddressesConfig { Hostname = "external" } } } }; var bucketConfig = new BucketConfig { NetworkResolution = networkType }; var adapter = new NodeAdapter(node, nodeExt, bucketConfig); Assert.Equal(expected, adapter.Hostname); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); System.Type[] allowedPortTypes; if (startPort.direction == Direction.Input) { allowedPortTypes = ((BaseNode)startPort.node).AllowedOutPorts; } else { allowedPortTypes = ((BaseNode)startPort.node).AllowedInPorts; } ports.ForEach((port) => { if (startPort.node != port.node && startPort.direction != port.direction) { for (int i = 0; i < allowedPortTypes.Length; i++) { if (port.node.GetType() == allowedPortTypes[i]) { compatiblePorts.Add(port); break; } } compatiblePorts.Add(port); } }); return(compatiblePorts); }
public override List <Port> GetCompatiblePorts(Port startAnchor, NodeAdapter nodeAdapter) { var compatibleAnchors = new List <Port>(); List <FSStateNode> connections = null; if (startAnchor.direction == Direction.Input) { connections = startAnchor.connections.OfType <FSMEdgeView>().Select(e => e.Transition.ToNode as FSStateNode).ToList(); } else { connections = startAnchor.connections.OfType <FSMEdgeView>().Select(e => e.Transition.FromNode as FSStateNode).ToList(); } foreach (var candidateAnchor in ports.ToList()) { if (startAnchor.node == candidateAnchor.node) { continue; } if (startAnchor.direction == candidateAnchor.direction) { continue; } if (connections.Any(c => c == (candidateAnchor.node as FSMNodeView)?.StateNode)) { continue; } compatibleAnchors.Add(candidateAnchor); } return(compatibleAnchors); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter adapter = null) { var compatible = new List <Port>(); foreach (var port in ports.ToList()) { //分岐 // 同じノードには繋げない if (startPort.node == port.node) { continue; } // Input同士、Output同士は繋げない if (port.direction == startPort.direction) { continue; } // ポートの型が一致していない場合は繋げない if (port.portType != startPort.portType) { continue; } compatible.Add(port); } return(compatible); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { // Remove all ports on same node and all ports with same direction (in/out) // Get only type-compatable ports var availablePorts = ports.ToList() .Where(p => p.direction != startPort.direction && p.node != startPort.node) .ToArray(); // Get only type-compatable ports // I know I can better but... if (startPort.portType == typeof(AnyValueType)) { availablePorts = availablePorts .Where(p => p.portType != typeof(ExecutionPin) && !typeof(UnityEngine.Object).IsAssignableFrom(p.portType)) .ToArray(); } else { availablePorts = availablePorts .Where(p => p.portType == startPort.portType) .ToArray(); } var connectedPorts = startPort.connections.Select(c => startPort.direction == Direction.Input ? c.output : c.input).ToArray(); // Remove all ports which we already are connected with to avoid multi-edge generation on both in and out ports multi capacity return(availablePorts.Where(p => !connectedPorts.Contains(p)).ToList()); }
// TODO: save the position and zoom in the graph asset // public override void OnPersistentDataReady() // { // //We set the position and scale saved in the graph asset file // Vector3 pos = graph.position; // Vector3 scale = graph.scale; // base.OnPersistentDataReady(); // UpdateViewTransform(pos, scale); // } public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); compatiblePorts.AddRange(ports.ToList().Where(p => { var portView = p as PortView; if (p.direction == startPort.direction) { return(false); } //Check if there is custom adapters for this assignation if (CustomPortIO.IsAssignable(startPort.portType, p.portType)) { return(true); } //Check for type assignability if (!p.portType.IsReallyAssignableFrom(startPort.portType)) { return(false); } //Check if the edge already exists if (portView.GetEdges().Any(e => e.input == startPort || e.output == startPort)) { return(false); } return(true); })); return(compatiblePorts); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var ret = new List <Port>(); if (startPort.portType == typeof(FlowEntryPort)) { ports.ForEach(port => { if (port.portType == typeof(FlowExitPort)) { ret.Add(port); } }); } else if (startPort.portType == typeof(FlowExitPort)) { ports.ForEach(port => { Debug.Log(port.name + " " + port.portType); if (port.portType == typeof(FlowEntryPort)) { ret.Add(port); } }); } return(ret); }
internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool selected, string target) { INode node = item; string className = node.ClassNames; if (selected) { className += "selected "; } ILinkBuilder builder = Link.To(node) .Target(target) .Class(className) .Href(adapter.GetPreviewUrl(item)) .Text("<img src='" + adapter.GetIconUrl(item) + "'/>" + node.Contents) .Attribute("id", item.Path.Replace('/', '_')) .Attribute("title", "#" + item.ID + ": " + N2.Context.Current.Definitions.GetDefinition(item).Title) .Attribute("data-id", item.ID.ToString()) .Attribute("data-type", item.GetContentType().Name) .Attribute("data-path", item.Path) .Attribute("data-url", item.Url) .Attribute("data-page", item.IsPage.ToString().ToLower()) .Attribute("data-zone", item.ZoneName) .Attribute("data-permission", adapter.GetMaximumPermission(item).ToString()); builder.Href(adapter.GetPreviewUrl(item)); return(builder); }
public override List<Port> GetCompatiblePorts(Port startAnchor, NodeAdapter nodeAdapter) { var compatibleAnchors = new List<Port>(); var startSlot = startAnchor.GetSlot(); if (startSlot == null) return compatibleAnchors; var startStage = startSlot.stageCapability; if (startStage == ShaderStageCapability.All) startStage = NodeUtils.GetEffectiveShaderStageCapability(startSlot, true) & NodeUtils.GetEffectiveShaderStageCapability(startSlot, false); foreach (var candidateAnchor in ports.ToList()) { var candidateSlot = candidateAnchor.GetSlot(); if (!startSlot.IsCompatibleWith(candidateSlot)) continue; if (startStage != ShaderStageCapability.All) { var candidateStage = candidateSlot.stageCapability; if (candidateStage == ShaderStageCapability.All) candidateStage = NodeUtils.GetEffectiveShaderStageCapability(candidateSlot, true) & NodeUtils.GetEffectiveShaderStageCapability(candidateSlot, false); if (candidateStage != ShaderStageCapability.All && candidateStage != startStage) continue; } compatibleAnchors.Add(candidateAnchor); } return compatibleAnchors; }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); foreach (var port in ports.ToList()) { // 同じノードは繋げない if (startPort.node == port.node) { continue; } // Input - Input , Output - Outputは繋げない if (startPort.direction == port.direction) { continue; } // ポートタイプが違うものは繋げない if (startPort.portType != port.portType) { continue; } compatiblePorts.Add(port); } return(compatiblePorts); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); PortView startPortView = startPort as PortView; compatiblePorts.AddRange(ports.ToList().Where(p => { var portView = p as PortView; if (p.direction == startPort.direction) { return(false); } if (p.node == startPort.node) { return(false); } //Check if there is custom adapters for this assignation if (CustomPortIO.IsAssignable(startPort.portType, p.portType)) { return(true); } // Allow connection between RenderTexture and all texture types: Type startType = startPortView.portData.displayType ?? startPortView.portType; Type endType = portView.portData.displayType ?? portView.portType; if (startType == typeof(RenderTexture)) { if (endType.IsSubclassOf(typeof(Texture))) { return(true); } } if (endType == typeof(RenderTexture)) { if (startType.IsSubclassOf(typeof(Texture))) { return(true); } } //Check for type assignability if (!BaseGraph.TypesAreConnectable(startPort.portType, p.portType)) { return(false); } //Check if the edge already exists if (portView.GetEdges().Any(e => e.input == startPort || e.output == startPort)) { return(false); } return(true); })); return(compatiblePorts); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { return(ports.ToList().Where(nap => nap.direction != startPort.direction && nap.node != startPort.node) // nodeAdapter.GetAdapter(nap.source, startPort.source) != null) .ToList()); }
internal static Uri GetManagementUri(this NodeAdapter nodesAdapter, ClusterOptions clusterOptions) { return(new UriBuilder { Scheme = clusterOptions.EffectiveEnableTls ? Https : Http, Host = nodesAdapter.Hostname, Port = clusterOptions.EffectiveEnableTls ? nodesAdapter.MgmtApiSsl : nodesAdapter.MgmtApi }.Uri); }
// GET api/<controller> public Node <int> Get() { var Contacts = GenerateContacts.PopulateContacts(1000); var Connections = GenerateConnections.PopulateConnections(Contacts); var Adapter = new NodeAdapter(); var ContactsNode = Adapter.FromContacts(Contacts, Connections); return(ContactsNode); }
public void When_NodeExt_Has_Alternate_Network_With_Ports_Configured_Use_External_Ports(string networkType, string expected) { var defaultServices = new Couchbase.Core.Configuration.Server.Services { Cbas = 1, CbasSsl = 2, Capi = 3, CapiSsl = 4, Fts = 5, FtsSsl = 6, Kv = 1, KvSsl = 2, N1Ql = 9, N1QlSsl = 10 }; var externalServices = new Couchbase.Core.Configuration.Server.Services { Cbas = 10, CbasSsl = 20, Capi = 30, CapiSsl = 40, Fts = 50, FtsSsl = 60, Kv = 10, KvSsl = 20, N1Ql = 90, N1QlSsl = 100 }; var node = new Node(); var nodeExt = new NodesExt { Hostname = "default", Services = defaultServices, AlternateAddresses = new Dictionary <string, ExternalAddressesConfig> { { "external", new ExternalAddressesConfig { Hostname = "external", Ports = externalServices } } } }; var bucketConfig = new BucketConfig { NetworkResolution = networkType, SurrogateHost = expected }; var adapter = new NodeAdapter(node, nodeExt, bucketConfig); VerifyServices(expected == "external" ? externalServices : defaultServices, adapter); }
internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool isSelected, string target, bool isSelectable) { var node = adapter.GetTreeNode(item); string className = node.CssClass; if (isSelected) { className += " selected"; } if (isSelectable) { className += " selectable"; } else { className += " unselectable"; } StringBuilder text = new StringBuilder(); if (!string.IsNullOrEmpty(node.IconClass)) { text.AppendFormat("<b class='{0}'></b> ", node.IconClass); } else if (!string.IsNullOrEmpty(node.IconUrl)) { text.AppendFormat("<img src='{0}' alt='icon'/>", node.IconUrl); } text.Append(node.Title); foreach (var mi in node.MetaInformation) { text.AppendFormat(" <span class='meta {0}' title='{1}'>{2}</span>", mi.Key, mi.Value.ToolTip, mi.Value.Text); } var builder = new Link(text.ToString(), node.ToolTip, node.Target ?? target, node.PreviewUrl, className) .Attribute("id", item.Path.Replace('/', '_')) .Attribute("data-id", item.ID.ToString()) .Attribute("data-type", item.GetContentType().Name) .Attribute("data-path", item.Path) .Attribute("data-url", item.Url) .Attribute("data-page", item.IsPage.ToString().ToLower()) .Attribute("data-zone", item.ZoneName) .Attribute("data-permission", node.MaximumPermission.ToString()); if (isSelected) { builder.Attribute("data-selected", "true"); } if (isSelectable) { builder.Attribute("data-selectable", "true"); } return(builder); }
public void When_NodeExt_Hostname_Is_Null_NodeAdapater_Can_Parse_Hostname_and_Port_From_Node(string hostname, string expectedHostname) { var node = new Node { Hostname = hostname }; var nodeExt = new NodeExt(); var adapter = new NodeAdapter(node, nodeExt); Assert.AreEqual(expectedHostname, adapter.Hostname); }
public void When_IPv6_NodeAdapter_Does_Not_Fail() { //arrange var serverConfigJson = ResourceHelper.ReadResource("config_with_ipv6"); var serverConfig = JsonConvert.DeserializeObject <BucketConfig>(serverConfigJson); //act var adapter = new NodeAdapter(serverConfig.Nodes[0], serverConfig.NodesExt[0]); //assert Assert.IsNotNull(adapter); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); ports.ForEach(port => { if (startPort != port /*&& startPort.node != port.node*/ && port.direction != startPort.direction && (startPort as DlogPort).IsCompatibleWith(port as DlogPort)) { compatiblePorts.Add(port); } }); return(compatiblePorts); }
public void When_NodeExt_Has_Alternate_Network_With_Ports_Configured_Use_External_Ports(string networkType, string expected) { var defaultServices = new Services { Analytics = 1, AnalyticsSsl = 2, Capi = 3, CapiSSL = 4, Fts = 5, FtsSSL = 6, KV = 1, KvSSL = 2, N1QL = 9, N1QLSsl = 10 }; var externalServices = new Services { Analytics = 10, AnalyticsSsl = 20, Capi = 30, CapiSSL = 40, Fts = 50, FtsSSL = 60, KV = 10, KvSSL = 20, N1QL = 90, N1QLSsl = 100 }; var node = new Node(); var nodeExt = new NodeExt { Hostname = "default", Services = defaultServices, AlternateAddresses = new AlternateAddressesConfig { External = new ExternalAddressesConfig { Hostname = "external", Ports = externalServices } } }; var mockBucketConfig = new Mock <IBucketConfig>(); mockBucketConfig.Setup(x => x.NetworkType).Returns(NetworkTypes.Auto); mockBucketConfig.Setup(x => x.SurrogateHost).Returns(expected); var adapter = new NodeAdapter(node, nodeExt, mockBucketConfig.Object); VerifyServices(expected == "external" ? externalServices : defaultServices, adapter); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); ports.ForEach((port) => { if (startPort != port && startPort.node != port.node && startPort.direction != port.direction) { compatiblePorts.Add(port); } }); return(compatiblePorts); }
public override List <Port> GetCompatiblePorts(Port start, NodeAdapter nodeAdapter) { var compatiblePorts = new List <Port>(); ports.ForEach(port => { if (start == port || start.node == port.node) { return; } compatiblePorts.Add(port); }); return(compatiblePorts); }
public void When_NodeExt_Hostname_Is_Null_NodeAdapater_Can_Parse_Hostname_and_Port_From_Node(string hostname, string expectedHostname) { var node = new Node { Hostname = hostname }; var nodeExt = new NodesExt(); var mockBucketConfig = new Mock <BucketConfig>(); var adapter = new NodeAdapter(node, nodeExt, mockBucketConfig.Object); Assert.Equal(expectedHostname, adapter.Hostname); }
public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter) { var oPorts = new List <Port>(); ports.ForEach(p => { if (startPort != p && startPort.node != p.node) { oPorts.Add(p); } }); return(oPorts); }
public void IsAnalyticsNodeSsl_Is_True_When_Port_Is_Provided() { var node = new Node(); var nodeExt = new NodeExt(); nodeExt.Hostname = "localhost"; nodeExt.Services.AnalyticsSsl = 18095; var adapater = new NodeAdapter(node, nodeExt); Assert.AreEqual(18095, adapater.AnalyticsSsl); Assert.IsTrue(adapater.IsAnalyticsNode); }
internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool selected, string target) { INode node = item; string className = node.ClassNames; if (selected) className += "selected "; ILinkBuilder builder = Link.To(node) .Target(target) .Class(className) .Href(adapter.GetPreviewUrl(item)) .Text("<img src='" + adapter.GetIconUrl(item) + "'/>" + node.Contents) .Attribute("rel", node.Path) .Attribute("data-id", item.ID.ToString()) .Attribute("data-type", item.GetContentType().Name) .Attribute("data-path", item.Path) .Attribute("data-url", item.Url) .Attribute("data-page", item.IsPage.ToString().ToLower()) .Attribute("data-zone", item.ZoneName); builder.Href(adapter.GetPreviewUrl(item)); return builder; }
internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool selected, string target) { INode node = item; string className = node.ClassNames; if (selected) className += "selected "; ILinkBuilder builder = Link.To(node) .Target(target) .Class(className) .Href(adapter.GetPreviewUrl(item)) .Text("<img src='" + adapter.GetIconUrl(item) + "'/>" + node.Contents) .Attribute("id", item.Path.Replace('/', '_')) .Attribute("title", "#" + item.ID + ": " + N2.Context.Current.Definitions.GetDefinition(item).Title) .Attribute("data-id", item.ID.ToString()) .Attribute("data-type", item.GetContentType().Name) .Attribute("data-path", item.Path) .Attribute("data-url", item.Url) .Attribute("data-page", item.IsPage.ToString().ToLower()) .Attribute("data-zone", item.ZoneName) .Attribute("data-permission", adapter.GetMaximumPermission(item).ToString()); builder.Href(adapter.GetPreviewUrl(item)); return builder; }