예제 #1
0
        public void Test2()
        {
            var tfs = new ThreadsFrames();

            try
            {
                int a = 0;
                using (var scope0 = tfs.CreateImmutableScope(a))
                {
                    string b = "1";
                    using (var scope1 = tfs.CreateImmutableScope(b))
                    {
                    }

                    ulong c = 2u;
                    using (var scope2 = tfs.CreateImmutableScope(c))
                    {
                        throw new TestExpectedException();
                    }
                }
            }
            catch (TestExpectedException excp)
            {
                var frames = tfs.ExtractFrames();
                Assert.Equal(2, frames.Count);
                Assert.Equal(0, frames[0].GetElementaries().OnlyFirst <int>());
                Assert.Equal(2u, frames[1].GetElementaries().OnlyFirst <ulong>());
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            var connectionString = args[0];


            var logger = new ConsoleLogger();

            using (var tfs = new ThreadsFrames())
            {
                //var sf = new ConsoleCollectionSaverFactory(
                //    );

                var ftn = new FullTableName("_ss");

                var tfnc = new TargetFileNameController(
                    1,
                    @"_bbin",
                    500
                    );

                var sf = new SqlServerCollectionSaverFactory(
                    connectionString,
                    ftn,
                    tfnc
                    );
                sf.PrepareDatabase();

                var r = new SqlServerReader(
                    connectionString,
                    ftn,
                    tfnc
                    );

                using (var pq = new PublishQueue(
                           sf,
                           logger
                           ))
                {
                    var p = new Publisher(
                        pq,
                        tfs
                        );

                    var iec = new Common.IEC(tfs, p, r);

                    iec.Publisher.PublishedEvent +=
                        (
                            collections,
                            count
                        ) =>
                    {
                        var read = iec.Reader.ReadBetween(
                            new DateTime(2000, 1, 1),
                            new DateTime(2030, 1, 1)
                            );

                        Console.WriteLine(read.Last().Body);
                    };

                    ProcessMutable(iec);
                    //ProcessImmutable(iec);
                }
            }

            Console.WriteLine("Finished!");
        }