Example #1
0
        public Table(int id, int size, AbstractStrategy strategy, AbstractOutput output)
        {
            this.Id    = id;
            this.Size  = size;
            this.Seats = new List <AbstractSeat>();
            this.Board = new List <Card>();
            this.Board.Clear();

            AbstractSeat prevSeat = new EmptySeat(this, null, null);

            for (int i = 1; i < this.Size; i++)
            {
                this.Seats.Add(prevSeat);
                prevSeat = new EmptySeat(this, null, prevSeat);
            }
            this.Seats.Add(prevSeat);

            this.Seats[0].Right = prevSeat;

            while (prevSeat.Right.Left == null)
            {
                prevSeat.Right.Left = prevSeat;
                prevSeat            = prevSeat.Right;
            }

            this.SitIn(0, new ArtificialPlayer(strategy, output));
        }
Example #2
0
        public SiglaStamper
        (
            [NotNull] string connectionString,
            [NotNull] AbstractOutput output
        )
        {
            Output = output;
            IrbisConnection connection
                = new IrbisConnection(connectionString);

            Connection = connection;
        }
Example #3
0
        /// <summary>
        /// Dump the array of data to <see cref="AbstractOutput"/>.
        /// </summary>
        public static void DumpToOutput <T>
        (
            [NotNull] AbstractOutput output,
            [NotNull] T[] data
        )
            where T : struct
        {
            Code.NotNull(output, "output");
            Code.NotNull(data, "data");

            string text = DumpToText(data);

            output.WriteLine(text);
        }
Example #4
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public DataflowBatchReader
        (
            [NotNull] IrbisConnection connection,
            [NotNull] string database,
            [NotNull] AbstractOutput log
        )
        {
            Code.NotNull(connection, "connection");
            Code.NotNullNorEmpty(database, "database");
            Code.NotNull(log, "log");

            Connection = connection;
            Database   = database;
            Log        = log;
            Readers    = new BlockingCollection <ReaderInfo>();
            Debtors    = new BlockingCollection <DebtorInfo>();
        }
Example #5
0
        /// <summary>
        /// Initialize.
        /// </summary>
        public static void Initialize
        (
            [CanBeNull] AbstractOutput output
        )
        {
            Output = output;

            Configuration = JObject.Parse
                            (
                File.ReadAllText("osmi.json")
                            );

            ConnectionString = CM.AppSettings["connectionString"];

            string baseUri = CM.AppSettings["baseUri"];
            string apiId   = CM.AppSettings["apiID"];
            string apiKey  = CM.AppSettings["apiKey"];

//            try
//            {
            Client = new OsmiCardsClient
                     (
                baseUri,
                apiId,
                apiKey
                     );

            TemplateName = CM.AppSettings["template"];
            WriteLine("Reading OSMI template: {0}", TemplateName);
            Template = Client.GetTemplateInfo(TemplateName);
//            }
//            catch (Exception inner)
//            {
//                Encoding encoding = Encoding.UTF8;
//                ArsMagnaException outer = new ArsMagnaException("OSMI error", inner);
//                outer.Attach(new BinaryAttachment("baseUri", encoding.GetBytes(baseUri)));
//                outer.Attach(new BinaryAttachment("apiId", encoding.GetBytes(apiId)));
//                outer.Attach(new BinaryAttachment("apiKey", encoding.GetBytes(apiKey)));
//
//                throw outer;
//            }
        }
Example #6
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        public RecordExtractor
        (
            ManagedClient64 client,
            AbstractOutput output
        )
        {
            if (ReferenceEquals(client, null))
            {
                throw new ArgumentNullException("client");
            }
            if (ReferenceEquals(output, null))
            {
                output = AbstractOutput.Null;
            }

            ReadRecords = false;

            _client = client;
            _output = output;
        }
Example #7
0
        public DataAccessLevel
        (
            AbstractOutput output
        )
        {
            if (ReferenceEquals(output, null))
            {
                throw new ArgumentNullException("output");
            }
            Output = output;

            string sqlConnectionString
                = CM.AppSettings["sql-connection-string"];

            Db = new DbManager
                 (
                new Sql2008DataProvider(),
                sqlConnectionString
                 );
            Output.WriteLine
            (
                "Подключились к SQL-серверу"
            );

            string irbisConnectionString
                = CM.AppSettings["irbis-connection-string"];

            Client = new IrbisConnection();
            Client.ParseConnectionString(irbisConnectionString);
            Client.Connect();
            Output.WriteLine("Подключились к ИРБИС-серверу");

            _timer = new Timer
            {
                Enabled  = true,
                Interval = 60 * 1000
            };
            _timer.Tick += _timer_Tick;
        }
Example #8
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("SIGLER <sigla.txt> <connectionString>");
                return;
            }

            string fileName         = args[0];
            string connectionString = args[1];

            AbstractOutput output = AbstractOutput.Console;

            using (SiglaStamper stamper = new SiglaStamper
                                          (
                       connectionString,
                       output
                                          ))
            {
                stamper.ProcessFile(fileName);
            }
        }
Example #9
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                return;
            }

            string rootPath   = args[0];
            string formatName = args[1];

            try
            {
                using (LocalProvider provider = new LocalProvider(rootPath))
                {
                    FileSpecification specification = new FileSpecification
                                                      (
                        IrbisPath.MasterFile,
                        provider.Database,
                        formatName
                                                      );
                    string source = provider.ReadFile(specification);
                    if (string.IsNullOrEmpty(source))
                    {
                        Console.WriteLine("No file: {0}", formatName);
                    }
                    else
                    {
                        PftContext context = new PftContext(null);
                        context.SetProvider(provider);
                        PftFormatter formatter = new PftFormatter(context);
                        formatter.ParseProgram(source);

                        PftProgram program
                            = (PftProgram)formatter.Program.Clone();
                        program.Optimize();

                        //Console.WriteLine(program.DumpToText());
                        //Console.WriteLine();

                        if (!Directory.Exists("Out"))
                        {
                            Directory.CreateDirectory("Out");
                        }

                        PftCompiler compiler = new PftCompiler
                        {
                            Debug      = true,
                            KeepSource = true,
                            //OutputPath = "Out"
                            OutputPath = "."
                        };
                        compiler.SetProvider(provider);
                        string className = compiler.CompileProgram
                                           (
                            program
                                           );

                        //string sourceCode = compiler.GetSourceCode();
                        //Console.WriteLine(sourceCode);

                        AbstractOutput output       = AbstractOutput.Console;
                        string         assemblyPath = compiler.CompileToDll
                                                      (
                            output,
                            className
                                                      );
                        if (!ReferenceEquals(assemblyPath, null))
                        {
                            Console.WriteLine
                            (
                                "Compiled to {0}",
                                assemblyPath
                            );

                            MarcRecord record = provider.ReadRecord(1);

                            //if (!ReferenceEquals(record, null))
                            //{
                            //    Assembly assembly
                            //        = Assembly.LoadFile(assemblyPath);
                            //    Func<PftContext, PftPacket> creator
                            //        = CompilerUtility.GetEntryPoint(assembly);
                            //    PftPacket packet = creator(context);
                            //    string formatted = packet.Execute(record);
                            //    Console.WriteLine(formatted);

                            //    Stopwatch stopwatch = new Stopwatch();
                            //    stopwatch.Start();
                            //    for (int i = 0; i < 100000; i++)
                            //    {
                            //        if (i % 1000 == 0)
                            //        {
                            //            Console.WriteLine(i);
                            //        }
                            //        packet.Execute(record);
                            //    }
                            //    stopwatch.Stop();
                            //    Console.WriteLine(stopwatch.Elapsed);
                            //}

                            if (!ReferenceEquals(record, null))
                            {
                                using (RemoteFormatter remote
                                           = new RemoteFormatter(assemblyPath))
                                {
                                    PftPacket packet = remote.GetFormatter(context);
                                    Console.WriteLine(RemotingServices.IsTransparentProxy(packet));
                                    string formatted = packet.Execute(record);
                                    Console.WriteLine(formatted);

                                    Stopwatch stopwatch = new Stopwatch();
                                    stopwatch.Start();
                                    for (int i = 0; i < 100; i++)
                                    {
                                        if (i % 10 == 0)
                                        {
                                            Console.WriteLine(i);
                                        }
                                        packet.Execute(record);
                                    }
                                    stopwatch.Stop();
                                    Console.WriteLine(stopwatch.Elapsed);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
Example #10
0
        private static bool InitializeOutputSystem(AbstractOutput DesiredOutputSystem)
        {
            if (DesiredOutputSystem == null)
                throw new ArgumentNullException ("DesiredOutputSystem", "DesiredOutputSystem must be specified to initialize the system");

            bool success = false;

            SkipInput = true;
            System.Threading.Thread skip_input_buffer = new System.Threading.Thread (FlushKeyboard);
            skip_input_buffer.IsBackground = true;
            skip_input_buffer.Start ();

            ActiveOutputSystem = DesiredOutputSystem;
            success = ActiveOutputSystem.InitializeSystem ();

            string outputType = ActiveOutputSystem.GetType ().Name.Trim ();
            if (outputType == "") {
                outputType = "Unknown";
            }

            if (success) {
                Console.WriteLine ("- Connected to '{0}' via '{1}'", outputType, ActiveOutputSystem.Identifier);

                // Don't allow a shorter animation time than the output system processing can manage
                Light_Animation_Latency = Math.Max (ActiveOutputSystem.ProcessingLatency + 1, Light_Animation_Target_Latency);

                // Update number of lights, (re-)initalize the light queues
                LightSystem.SetLightCount (ActiveOutputSystem.LightCount);
                CreateLightQueues (LightSystem.LIGHT_COUNT);
            } else {
                Console.WriteLine ("- Could not connect to '{0}'", outputType);
            }

            SkipInput = false;
            if (skip_input_buffer.IsAlive)
                skip_input_buffer.Abort ();

            return success;
        }
Example #11
0
 public Game(AbstractOutput output)
 {
     GameDeck    = new Deck(new CardFactory());
     observers   = new List <IObserver <Player> >();
     this.Output = output;
 }
Example #12
0
 public ArtificialPlayer(AbstractStrategy strategy, AbstractOutput output)
 {
     this.strategy = strategy;
     this.output   = output;
 }