Example #1
0
 public CollabBinding(Controller controller)
 {
     Controller = controller;
     document   = new Document();
     nodes      = document.AddArray("nodes");
     edges      = document.AddArray("edges");
     InitConnection();
 }
Example #2
0
        public Document[] GetDocuments(int numUsers)
        {
            List <Document> documents = new List <Document>();

            for (int i = 0; i < numUsers; ++i)
            {
                Document doc = new Document();
                doc.clientId = i;
                doc.AddText("text");
                doc.AddArray("array");

                documents.Add(doc);
            }

            return(documents.ToArray());
        }
Example #3
0
        public void NestedStructs()
        {
            Document doc  = new Document();
            Document doc2 = new Document();

            doc2.AddArray("array");
            doc.clientId = 0;
            var array = doc.AddArray("array");
            var map   = new Map();
            var text  = new Text();

            doc.Update += (doc, data) =>
            {
                doc2.ApplyUpdate(data);
            };

            array.Insert(0, map);
            map.Set("text", text);
            text.InsertText(0, "ABEF");
            text.InsertText(2, "CD");

            Assert.Equal("ABCDEF", ((doc2.GetArray("array")[0] as Map).Get("text") as Text).ToString());
        }
Example #4
0
 static Shared()
 {
     doc.AddArray("nodes");
     doc.AddArray("edges");
 }
Example #5
0
        public void SyncNodes()
        {
            Document doc0 = new Document();
            Document doc1 = new Document();
            Document doc2 = new Document();
            Document doc3 = new Document();

            Func <Document, Map> AddNode = (Document doc) =>
            {
                var nodes = doc.GetArray("nodes");
                var map   = new Map();
                nodes.Push(map);
                map.Set("x", new ContentBinary(BitConverter.GetBytes(0)));
                map.Set("y", new ContentBinary(BitConverter.GetBytes(0)));
                map.Set("text", new Text());

                return(map);
            };

            doc0.AddArray("nodes");
            doc1.AddArray("nodes");
            doc2.AddArray("nodes");
            doc3.AddArray("nodes");

            doc0.Update += (doc, data) =>
            {
                doc1.ApplyUpdate(data);
                doc2.ApplyUpdate(data);
                doc3.ApplyUpdate(data);
            };

            doc1.Update += (doc, data) =>
            {
                doc0.ApplyUpdate(data);
            };

            doc2.Update += (doc, data) =>
            {
                doc0.ApplyUpdate(data);
            };

            doc3.Update += (doc, data) =>
            {
                doc0.ApplyUpdate(data);
            };

            var node0 = AddNode(doc0);
            var node1 = AddNode(doc0);
            var node2 = AddNode(doc0);

            var nodes2  = doc3.GetArray("nodes");
            Map node2_2 = nodes2[nodes2.length - 1] as Map;

            node2_2.Update += (sender, changedKeys) =>
            {
                foreach (var key in changedKeys)
                {
                    Debug.WriteLine(node2_2.Get(key).ToString());
                }
            };

            var  nodes3        = doc3.GetArray("nodes");
            Map  node2_3       = nodes3[nodes3.length - 1] as Map;
            Text node_2_3_Text = node2_3.Get("text") as Text;

            node_2_3_Text.InsertText(0, "node2");

            Assert.Equal("node2", (node2_2.Get("text") as Text).ToString());
        }