public override void CreateEdgeTo(TransportAddress ta, EdgeCreationCallback ecb) { SubringTransportAddress sta = ta as SubringTransportAddress; if (sta == null) { ecb(false, null, new Exception("TA Type is not Subring!")); } else if (!sta.Namespace.Equals(_shared_node.Realm)) { ecb(false, null, new Exception("Namespace mismatch")); } else if (sta.Target.Equals(_private_node.Address)) { ecb(false, null, new Exception("You are me!")); } else { SubringEdge se = new SubringEdge(_local_ta, sta, false, new AHExactSender(_shared_node, sta.Target), _ptype); se.CloseEvent += CloseHandler; _it.Add(se); ecb(true, se, null); } }
/// <summary>Creates an XmppEdge.</summary> public override void CreateEdgeTo(TransportAddress ta, EdgeCreationCallback ecb) { if (_ready == 0) { ecb(false, null, new Exception("Xmpp is not authenticated")); } XmppTransportAddress xta = ta as XmppTransportAddress; if (xta == null) { ecb(false, null, new Exception("TA Type is not Xmpp!")); return; } else if (!_xmpp.IsUserOnline(xta.JID)) { ecb(false, null, new Exception("Xmpp user, " + xta.JID + ", is not online.")); return; } XmppEdge xe = new XmppEdge(this, _local_ta, xta, false); _it.Add(xe); xe.CloseEvent += CloseHandler; ecb(true, xe, null); }
override public SecurityAssociation CreateSecurityAssociation(ISender sender) { DtlsAssociation sa = null; if (_sender_to_sa.TryGetValue(sender, out sa)) { return(sa); } if (NoSuchSA(sender, 0, true, out sa)) { DtlsAssociation tmpsa = sa; bool close = false; lock (_sender_to_sa) { if (_sender_to_sa.TryGetValue(sender, out sa)) { close = true; } else { _sender_to_sa.Add(sender, tmpsa); } } if (close) { tmpsa.Close("Duplicate"); } else { sa = tmpsa; _it.Add(sa); sa.Subscribe(this, null); sa.Handshake(); } } return(sa); }
public void Tokenizer_Recognize_Identifier() { IdentifierTable id = new IdentifierTable(); string code; bool expected; bool actual; code = "t123"; expected = true; actual = id.Find(code); Assert.AreEqual(expected, actual); id.Add(new Identifier("x1", 0, 0, 0)); code = "x1"; expected = true; actual = id.Find(code); Assert.AreEqual(expected, actual); code = "_text"; expected = true; actual = id.Find(code); Assert.AreEqual(expected, actual); code = "TEXT"; expected = true; actual = id.Find(code); Assert.AreEqual(expected, actual); code = "\"text\""; expected = false; actual = id.Find(code); Assert.AreEqual(expected, actual); code = "&text"; expected = false; actual = id.Find(code); Assert.AreEqual(expected, actual); code = "1text"; expected = false; actual = id.Find(code); Assert.AreEqual(expected, actual); code = "країна"; expected = true; actual = id.Find(code); Assert.AreEqual(expected, actual); IdentifierType exp; IdentifierType act; code = "SomeFunction() "; exp = IdentifierType.Function; act = id.IdentifyType(code); Assert.AreEqual(exp, act); code = "SomeArray[]"; exp = IdentifierType.Array; act = id.IdentifyType(code); Assert.AreEqual(exp, act); }