Exemple #1
0
 public RetryStream(RetryStreamConfig _owner, string _path, StreamAccess _access)
 {
     owner  = _owner;
     path   = _path;
     access = _access;
     str    = CreateNetworkStream();
 }
Exemple #2
0
 public Stream CreateNetworkStream()
 {
     return(RetryStreamConfig.CreateNetworkStream(path));
 }
Exemple #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Started");
            RetryStreamConfig.ResetStorage();
            DB.Root("/mnt/hgfs/Share/db");


            var auto = new Func <AutoBox>(() =>
            {
                //iBoxDB.DBDebug.DDebug.DeleteDBFiles(1);
                DB db = new DB(1);

                db.GetConfig().EnsureTable <TestObject>(nameof(TestObject), "Id");

                //Disable Cache, for Test only. it should be big for remote IO
                db.GetConfig().DBConfig.CacheLength = 1;

                return(db.Open());
            })();


            using (auto.GetDatabase())
            {
                string r = "Begin";

                var thread1 = new Thread(() =>
                {
                    while (r != "exit")
                    {
                        try
                        {
                            Console.WriteLine("Count: " + auto.SelectCount($"from {nameof(TestObject)}"));
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"Thread1  {ex.Message}");
                        }
                        Thread.Sleep(1);
                    }
                }
                                         );


                var thread2 = new Thread(() =>
                {
                    while (r != "exit")
                    {
                        try
                        {
                            using (var box = auto.Cube())
                            {
                                box[nameof(TestObject)].Insert(
                                    new TestObject
                                {
                                    Id    = Guid.NewGuid(),
                                    Value = $"{r} ,{DateTime.Now}"
                                }
                                    );
                                Console.WriteLine($"Commit {box.Commit()}");
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"Thread2  {ex.Message}");
                        }
                        Thread.Sleep(1);
                    }
                }
                                         );

                thread1.Start();
                thread2.Start();
                while ((r = Console.ReadLine()) != "exit")
                {
                    Console.WriteLine($"Input {r}");
                }
                thread1.Join();
                thread2.Join();
            }
            Console.WriteLine("End.");
        }