public static void Test(string filename) { //try { using (var memoryManager = new UInt64LinksMemoryManager(filename, 512 * 1024 * 1024)) using (var links = new UInt64Links(memoryManager)) { var syncLinks = new SynchronizedLinks<ulong>(links); //links.EnterTransaction(); var link = memoryManager.AllocateLink(); memoryManager.FreeLink(link); Console.ReadKey(); var temp1 = syncLinks.Create(); var temp2 = syncLinks.Create(); var temp3 = syncLinks.CreateAndUpdate(temp1, temp2); var temp4 = syncLinks.CreateAndUpdate(temp1, temp3); var temp5 = syncLinks.CreateAndUpdate(temp4, temp2); //links.Delete(links.GetSource(temp2), links.GetTarget(temp2)); //links.Each(0, temp2, x => links.PrintLink(x)); syncLinks.Each(syncLinks.Constants.Any, syncLinks.Constants.Any, x => { memoryManager.PrintLink(x); return true; }); //links.ExportSourcesTree(filename + ".gexf"); Console.WriteLine("---"); Console.WriteLine(syncLinks.Count()); var sequences = new Sequences(syncLinks); //var seq = sequences.Create(temp1, temp5, temp2, temp1, temp2); //, temp5); var 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); var 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(syncLinks.Count()); sequences.Create(temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1, temp1); Console.WriteLine(syncLinks.Count()); 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("---"); syncLinks.Each(syncLinks.Constants.Any, syncLinks.Constants.Any, x => { memoryManager.PrintLink(x); return true; }); Console.WriteLine("---"); //links.ExitTransaction(); //links.EnterTransaction(); //links.ExitTransaction(); } ; } //catch (Exception ex) { // ex.WriteToConsole(); } Console.ReadKey(); }
private static void Main() { Console.CancelKeyPress += OnCancelKeyPressed; try { #if DEBUG File.Delete(DefaultDatabaseFilename); #endif using (var links = new Links(DefaultDatabaseFilename, 8*1024*1024)) { InitUTF16(links); var sequences = new Sequences(links); PrintContents(links, sequences); Console.WriteLine("Links server started."); Console.WriteLine("Press CTRL+C or ESC to stop server."); using (var sender = new UdpSender(8888)) { MessageHandlerCallback handleMessage = message => { if (!string.IsNullOrWhiteSpace(message)) { Console.WriteLine("R.M.: {0}", message); if (message.EndsWith("?")) sequences.Search(sender, message); else sequences.Create(sender, message); } }; //using (var receiver = new UdpReceiver(7777, handleMessage)) using (var receiver = new UdpClient(7777)) { while (LinksServerRunning) { while (receiver.Available > 0) handleMessage(receiver.ReceiveString()); while (Console.KeyAvailable) { var info = Console.ReadKey(true); if (info.Key == ConsoleKey.Escape) LinksServerRunning = false; } Thread.Sleep(1); } Console.WriteLine("Links server stopped."); } } } } catch (Exception ex) { ex.WriteToConsole(); } Console.CancelKeyPress -= OnCancelKeyPressed; }