Exemple #1
0
 /// <summary>
 /// Constructs TcpOptions from uri and resources.
 /// </summary>
 /// <param name="uri"></param>
 /// <param name="resources"></param>
 public TcpOptions(URL uri, Resources resources)
 {
     autoFlush      = uri.GetBooleanTerm(AUTO_FLUSH, false);
     bufferSize     = CheckBufferSize(uri.GetIntegerTerm(BUFFER_SIZE, 0));
     keepAlive      = uri.GetBooleanTerm(KEEP_ALIVE, false);
     lingerTime     = CheckLingerTime(uri.GetIntegerTerm(LINGER_TIME, 30));
     noDelay        = uri.GetBooleanTerm(NO_DELAY, true);
     reconnectDelay = CheckReconnectDelay(uri.GetIntegerTerm(RECONNECT_DELAY, 0));
     trafficClass   = CheckTrafficClass(uri.GetIntegerTerm(TRAFFIC_CLASS, 0));
 }
Exemple #2
0
 public UdpListener(URL uri, Resources resources)
     : this(TranslateHost(uri.Host),
            uri.Port != null ? uri.Port.Value : 0,
            (bool)uri.GetBooleanTerm(REUSE_PORT, false),
            0,
            (int)uri.GetIntegerTerm(QUEUE_SIZE, 15))
 {
     // nothing else.
 }
Exemple #3
0
        public void TestQueryTerms()
        {
            String testUrl = "tcp://*****:*****@127.0.0.1:4001/cuae";
            URL    url     = new URL(testUrl);

            Assert.IsFalse(url.HasTerms());

            testUrl = "tcp://*****:*****@127.0.0.1:4001/cuae?term1=500";
            url     = new URL(testUrl);

            Assert.IsTrue(url.HasTerms());
            Assert.IsTrue(url.HasTerm("term1"));
            Assert.IsTrue(url.HasTerm("term1", "500"));
            Assert.IsTrue(url.HasTerm("term1", 500));
            Assert.IsFalse(url.HasTerm("term1", "1000"));
            Assert.IsFalse(url.HasTerm("term1", 1000));
            Assert.IsFalse(url.HasMultipleValues("term1"));
            Assert.AreEqual("500", url.GetTerm("term1"));
            Assert.AreEqual(500, url.GetIntegerTerm("term1"));
            Assert.AreEqual("500", url.GetTerm("term1", "x"));
            Assert.AreEqual(500, url.GetIntegerTerm("term1", 2));

            Assert.IsFalse(url.HasTerm("term2"));
            Assert.IsFalse(url.HasTerm("term2", "500"));
            Assert.IsFalse(url.HasTerm("term2", 500));
            Assert.IsNull(url.GetTerm("term2"));
            Assert.IsNull(url.GetIntegerTerm("term2"));
            Assert.AreEqual("x", url.GetTerm("term2", "x"));
            Assert.AreEqual(2, url.GetIntegerTerm("term2", 2));

            // multiple values of the same term
            url.AddTerm("term1", 500.5);
            Assert.IsTrue(url.HasMultipleValues("term1"));
            Assert.IsTrue(url.HasTerm("term1"));
            Assert.IsTrue(url.HasTerm("term1", "500"));
            Assert.IsTrue(url.HasTerm("term1", 500));
            Assert.IsTrue(url.HasTerm("term1", "500.5"));
            Assert.IsTrue(url.HasTerm("term1", 500.5));
            try
            {
                url.GetTerm("term1");
                Assert.Fail("Exception wasn't thrown...");
            }
            catch (Exception)
            {
                // ignore exception
            }
            string[] t = url.GetTerms("term1");
            Assert.AreEqual(2, t.Length);
            Assert.AreEqual("500", t[0]);
            Assert.AreEqual("500.5", t[1]);

            // add another term => multiple terms
            url.AddTerm("term2", "value");
            Assert.IsFalse(url.HasMultipleValues("term2"));
            Assert.IsTrue(url.HasTerm("term2"));
            Assert.IsTrue(url.HasTerm("term2", "value"));
            Assert.AreEqual("value", url.GetTerm("term2"));

            t = url.GetTermNames();
            Assert.AreEqual(2, t.Length);
            Assert.AreEqual("term1", t[0]);
            Assert.AreEqual("term2", t[1]);

            // Console.WriteLine( url.ToString() );
            // remove term
            Assert.IsFalse(url.RemoveTerm("term3"));
            Assert.IsTrue(url.RemoveTerm("term2"));
            Assert.IsFalse(url.HasTerm("term2"));
            t = url.GetTermNames();
            Assert.AreEqual(1, t.Length);
            Assert.AreEqual("term1", t[0]);

            // remove one value from a list of values for a term
            Assert.IsTrue(url.RemoveTerm("term1", "500.5"));
            Assert.IsFalse(url.HasMultipleValues("term1"));
            Assert.AreEqual("500", url.GetTerm("term1"));

            // clear terms
            url.ClearTerms();
            Assert.IsFalse(url.HasTerms());
            Assert.AreEqual(0, url.GetTermNames().Length);
            Assert.AreEqual("tcp://*****:*****@127.0.0.1:4001/cuae", url.ToString());
        }
Exemple #4
0
 public Packetizer(TransportData transport, URL uri, Resources resources)
     : this(transport, (int)uri.GetIntegerTerm(MAX_PKT_SIZE_TERM, DEFAULT_MAX_PKT_SIZE))
 {
     // nothing to do.
 }
Exemple #5
0
 public TcpListener(URL uri, Resources resources)
     : this((int)uri.GetIntegerTerm(BACKLOG, 0), TranslateHost(uri.Host), uri.Port != null ? uri.Port.Value : 0, 0)
 {
     // nothing else.
 }