Example #1
0
        // Depart from Java - This has a method where mimetype selection can be specified - NOTE: This toolkit
        //  does not yet support a JsonReader
        public HGrid invokeAction(HRef id, string action, HDict args, string mimetype)
        {
            HDict meta = new HDictBuilder().add("id", id).add("action", action).toDict();
            HGrid req  = HGridBuilder.dictsToGrid(meta, new HDict[] { args });

            return(call("invokeAction", req, mimetype));
        }
        public Task <HGrid> hisWriteAsync(HRef id, HHisItem[] items)
        {
            HDict meta = new HDictBuilder().add("id", id).toDict();
            HGrid req  = HGridBuilder.hisItemsToGrid(meta, items);

            return(CallAsync("hisWrite", req, "text/zinc"));
        }
Example #3
0
        /**
         * Write a set of history time-series data to the given point record.
         * The record must already be defined and must be properly tagged as
         * a historized point.  The timestamp timezone must exactly match the
         * point's configured "tz" tag.  If duplicate or out-of-order items are
         * inserted then they must be gracefully merged.
         */
        public override void hisWrite(HRef id, HHisItem[] items)
        {
            HDict meta = new HDictBuilder().add("id", id).toDict();
            HGrid req  = HGridBuilder.hisItemsToGrid(meta, items);

            call("hisWrite", req);
        }
Example #4
0
        private HDict parseDict()
        {
            HDictBuilder db     = new HDictBuilder();
            bool         braces = m_tokCur == HaystackToken.lbrace;

            if (braces)
            {
                consume(HaystackToken.lbrace);
            }
            while (m_tokCur == HaystackToken.id)
            {
                // tag name
                string id = consumeTagName();
                if (!char.IsLower(id[0]))
                {
                    err("Invalid dict tag name: " + id);
                }

                // tag value
                HVal val = HMarker.VAL;
                if (m_tokCur == HaystackToken.colon)
                {
                    consume(HaystackToken.colon);
                    val = parseVal();
                }
                db.add(id, val);
            }
            if (braces)
            {
                consume(HaystackToken.rbrace);
            }
            return(db.toDict());
        }
        public void testRemove()
        {
            HDict dict = new HDictBuilder().add("x").add("y", "str").toDict();

            dict.Remove("y");
            Assert.AreEqual(1, dict.Size);
            Assert.AreEqual(HMarker.VAL, dict["x"]);
        }
Example #6
0
        public void testInclude()
        {
            HDict a = new HDictBuilder()
                      .add("dis", "a")
                      .add("num", 100)
                      .add("foo", 99)
                      .add("date", HDate.make(2011, 10, 5))
                      .toDict();

            HDict b = new HDictBuilder()
                      .add("dis", "b")
                      .add("num", 200)
                      .add("foo", 88)
                      .add("date", HDate.make(2011, 10, 20))
                      .add("bar")
                      .add("ref", HRef.make("a"))
                      .toDict();

            HDict c = new HDictBuilder()
                      .add("dis", "c")
                      .add("num", 300)
                      .add("ref", HRef.make("b"))
                      .add("bar")
                      .toDict();

            Dictionary <string, HDict> db = new Dictionary <string, HDict>();

            db.Add("a", a);
            db.Add("b", b);
            db.Add("c", c);

            verifyInclude(db, "dis", "a,b,c");
            verifyInclude(db, "dis == \"b\"", "b");
            verifyInclude(db, "dis != \"b\"", "a,c");
            verifyInclude(db, "dis <= \"b\"", "a,b");
            verifyInclude(db, "dis >  \"b\"", "c");
            verifyInclude(db, "num < 200", "a");
            verifyInclude(db, "num <= 200", "a,b");
            verifyInclude(db, "num > 200", "c");
            verifyInclude(db, "num >= 200", "b,c");
            verifyInclude(db, "date", "a,b");
            verifyInclude(db, "date == 2011-10-20", "b");
            verifyInclude(db, "date < 2011-10-10", "a");
            verifyInclude(db, "foo", "a,b");
            verifyInclude(db, "not foo", "c");
            verifyInclude(db, "foo == 88", "b");
            verifyInclude(db, "foo != 88", "a");
            verifyInclude(db, "foo == \"x\"", "");
            verifyInclude(db, "ref", "b,c");
            verifyInclude(db, "ref->dis", "b,c");
            verifyInclude(db, "ref->dis == \"a\"", "b");
            verifyInclude(db, "ref->bar", "c");
            verifyInclude(db, "not ref->bar", "a,b");
            verifyInclude(db, "foo and bar", "b");
            verifyInclude(db, "foo or bar", "a,b,c");
            verifyInclude(db, "(foo and bar) or num==300", "b,c");
            verifyInclude(db, "foo and bar and num==300", "");
        }
        public void testAdd()
        {
            HDict dict = new HDictBuilder().add("x").add("y").toDict();

            dict.Add("z", HStr.make("z"));
            Assert.AreEqual(3, dict.Size);
            Assert.AreEqual(HMarker.VAL, dict["x"]);
            Assert.AreEqual(HMarker.VAL, dict["y"]);
            Assert.AreEqual(HStr.make("z"), dict["z"]);
        }
        public void testToArray()
        {
            HDict a     = new HDictBuilder().add("x").add("y", "str").toDict();
            var   array = a.ToArray();

            Assert.AreEqual(2, array.Length);
            Assert.AreEqual("x", array[0].Key);
            Assert.AreEqual(HMarker.VAL, array[0].Value);
            Assert.AreEqual("y", array[1].Key);
            Assert.AreEqual(HStr.make("str"), array[1].Value);
        }
        public void testEmpty()
        {
            // Instance Empty
            HDict tags = new HDictBuilder().toDict();

            Assert.AreEqual(tags, HDict.Empty);

            // size
            Assert.AreEqual(tags.size(), 0);
            Assert.IsTrue(tags.isEmpty());

            // missing tag
            Assert.IsFalse(tags.has("foo"));
            Assert.IsTrue(tags.missing("foo"));
            Assert.IsNull(tags.get("foo", false));
        }
        public void testBasics()
        {
            HDict tags = new HDictBuilder()
                         .add("id", HRef.make("aaaa-bbbb"))
                         .add("site")
                         .add("geoAddr", "Richmond, Va")
                         .add("area", 1200, "ft")
                         .add("date", HDate.make(2000, 12, 3))
                         .add("null", (HVal)null)
                         .toDict();

            // size
            Assert.AreEqual(tags.size(), 5);
            Assert.IsFalse(tags.isEmpty());

            // configured tags
            Assert.IsTrue(tags.get("id").hequals(HRef.make("aaaa-bbbb")));
            Assert.IsTrue(tags.get("site").hequals(HMarker.VAL));
            Assert.IsTrue(tags.get("geoAddr").hequals(HStr.make("Richmond, Va")));
            Assert.IsTrue(tags.get("area").hequals(HNum.make(1200, "ft")));
            Assert.IsTrue(tags.get("date").hequals(HDate.make(2000, 12, 3)));
            Assert.AreEqual(tags.get("null", false), null);
            try
            {
                tags.get("null");
                Assert.Fail();
            }
            catch (HaystackUnknownNameException)
            {
                Assert.IsTrue(true);
            }

            // missing tag
            Assert.IsFalse(tags.has("foo"));
            Assert.IsTrue(tags.missing("foo"));
            Assert.IsNull(tags.get("foo", false));
            try { tags.get("foo"); Assert.Fail(); } catch (HaystackUnknownNameException) { Assert.IsTrue(true); }
            try { tags.get("foo", true); Assert.Fail(); } catch (HaystackUnknownNameException) { Assert.IsTrue(true); }
        }
        public void testEquality()
        {
            HDict a = new HDictBuilder().add("x").toDict();

            Assert.IsTrue(a.hequals(new HDictBuilder().add("x").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("x", 3).toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("y").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("x").add("y").toDict()));

            a = new HDictBuilder().add("x").add("y", "str").toDict();
            Assert.IsTrue(a.hequals(new HDictBuilder().add("x").add("y", "str").toDict()));
            Assert.IsTrue(a.hequals(new HDictBuilder().add("y", "str").add("x").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("x", "str").add("y", "str").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("x").add("y", "strx").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("y", "str").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("x").toDict()));
            Assert.IsFalse(a.hequals(new HDictBuilder().add("x").add("yy", "str").toDict()));

            a = new HDictBuilder().add("x", (HVal)null).toDict();
            Assert.IsTrue(a.hequals(new HDictBuilder().add("x", (HVal)null).toDict()));
            Assert.IsTrue(a.hequals(new HDictBuilder().add("foo", (HVal)null).add("bar", (HVal)null).toDict()));
            Assert.IsTrue(a.hequals(HDict.Empty));
        }
        public void testCheckedExplicitMissing()
        {
            HDict tags = new HDictBuilder().toDict();

            tags.get("foo", true);
        }