Esempio n. 1
0
        private static void Main()
        {
            Console.CancelKeyPress += (sender, eventArgs) =>
            {
                eventArgs.Cancel = true;
                LinksServerStoped = true;
            };

            File.Delete(DefaultDatabaseFilename);

            using (var links = new CoreUnsafe.Pairs.Links(DefaultDatabaseFilename, 512 * 1024 * 1024))
            {
                InitUTF16(links);

                PrintContents(links);

                var sequences = new Sequences(links);

                Console.WriteLine("Links server started.");
                Console.WriteLine("Press CTRL+C to stop server.");

                using (var sender = new UdpSender(8888))
                {
                    using (var receiver = new UdpReceiver(7777, m =>
                    {
                        Console.WriteLine("R.M.: {0}", m);

                        if (!string.IsNullOrWhiteSpace(m))
                        {
                            if (m.EndsWith("?"))
                            {
                                m = m.Remove(m.Length - 1);
                                sequences.Search(sender, m);
                            }
                            else
                                sequences.Create(sender, m);
                        }
                    }))
                    {
                        receiver.Start();

                        while (!LinksServerStoped) Thread.Sleep(1);

                        receiver.Stop();
                    }
                }

                Console.WriteLine("Links server stopped.");
            }
        }
Esempio n. 2
0
        public static void Test(string filename)
        {
            //try
            {
                using (var links = new Links.DataBase.CoreUnsafe.Pairs.Links(filename, 512*1024*1024))
                {
                    //links.EnterTransaction();

                    links.TestBasicMemoryManagement();

                    Console.ReadKey();

                    ulong temp1 = links.Create(0, 0);
                    ulong temp2 = links.Create(0, 0);
                    ulong temp3 = links.Create(temp1, temp2);
                    ulong temp4 = links.Create(temp1, temp3);
                    ulong temp5 = links.Create(temp4, temp2);

                    //links.Delete(links.GetSource(temp2), links.GetTarget(temp2));

                    //links.Each(0, temp2, x => links.PrintLink(x));

                    links.Each(0, 0, x =>
                    {
                        links.PrintLink(x);
                        return true;
                    });

                    //links.ExportSourcesTree(filename + ".gexf");

                    Console.WriteLine("---");

                    Console.WriteLine(links.Total);

                    var sequences = new Sequences(links);

                    //var seq = sequences.Create(temp1, temp5, temp2, temp1, temp2); //, temp5);

                    ulong sequence = sequences.Create(temp1, temp5, temp2, temp1, temp2, temp3, temp2, temp4, temp1,
                        temp5);
                    //, temp5);

                    //links.Each(0, 0, (x, isAPoint) => { links.PrintLink(x); return true; });

                    //sequences.Each((x, isAPoint) => { links.PrintLink(x); return true; }, temp1, temp5, temp2, temp1, temp2, temp3, temp2, temp4, temp1, temp5);

                    int sequencesCount = 0;

                    sequences.Each(x =>
                    {
                        sequencesCount++;
                        return true;
                    }, temp1, temp5, temp2, temp1, temp2, temp3, temp2, temp4, temp1, temp5);

                    sequences.Compact(temp1, temp5, temp2, temp1, temp2, temp3, temp2, temp4, temp1, temp5);

                    Console.WriteLine(sequencesCount);

                    Console.WriteLine(links.Total);

                    sequences.Create(temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1,
                        temp1);

                    Console.WriteLine(links.Total);

                    Console.ReadKey();

                    //var ps = (from Pair score in links
                    //          where score.Target == temp2
                    //          select score).ToArray();

                    //var ls = (from Link score in links
                    //          where score.Target == temp2
                    //          select score).ToArray();

                    //links.Execute(db => from User user in links
                    //                    select user);

                    //var firstLink = links.First();

                    //links.Delete(ref firstLink);

                    Console.WriteLine("---");

                    links.Each(0, 0, x =>
                    {
                        links.PrintLink(x);
                        return true;
                    });

                    Console.WriteLine("---");

                    //links.ExitTransaction();

                    //links.EnterTransaction();

                    //links.ExitTransaction();
                }
                ;
            }
            //catch (Exception ex)
            {
                //    ex.WriteToConsole();
            }

            Console.ReadKey();
        }