public void GetData(out List <ReformData> reforms, out Color[] colors)
        {
            reforms = new List <ReformData>();
            colors  = null;

            using (IReaderProvider reader = NebulaModAPI.GetBinaryReader(ReformData))
            {
                int count = reader.BinaryReader.ReadInt32();
                for (int i = 0; i < count; i++)
                {
                    ReformData data = new ReformData
                    {
                        latitude  = reader.BinaryReader.ReadSingle(),
                        longitude = reader.BinaryReader.ReadSingle(),
                        type      = reader.BinaryReader.ReadInt32(),
                        color     = reader.BinaryReader.ReadInt32()
                    };
                    reforms.Add(data);
                }

                if (reader.BinaryReader.ReadBoolean())
                {
                    colors = new Color[16];
                    for (int i = 0; i < 16; i++)
                    {
                        colors[i] = new Color(
                            reader.BinaryReader.ReadSingle(),
                            reader.BinaryReader.ReadSingle(),
                            reader.BinaryReader.ReadSingle(),
                            reader.BinaryReader.ReadSingle());
                    }
                }
            }
        }
示例#2
0
        public Engine(IReaderProvider reader, IWriterProvider writer, ICommandProvider commandProvider)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("Engine ReaderProvider cannot be null!");
            }

            if (writer == null)
            {
                throw new ArgumentNullException("Engine WriterProvider cannot be null!");
            }

            if (commandProvider == null)
            {
                throw new ArgumentNullException("Engine CommandProvider cannot be null!");
            }

            this.reader          = reader;
            this.writer          = writer;
            this.commandProvider = commandProvider;

            AllOgranisms = new List <IOrganism>();
            Plants       = new List <IPlant>();
            Animals      = new List <IAnimal>();
        }
示例#3
0
        public IObjectReaderSession CreateSession(DbDataReader reader, IReaderProvider provider, object[] parentArgs, object[] userArgs, ICompiledSubQuery[] subQueries)
        {
            Type sessionType = typeof(ObjectReaderSession <>).MakeGenericType(this.dataReaderType);

            return((IObjectReaderSession)Activator.CreateInstance(sessionType, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null,
                                                                  new object[] { reader, provider, parentArgs, userArgs, subQueries }, null));
        }
示例#4
0
        public String ReadRFIDToken(int timeout)
        {
            // Explicitly use the PC/SC Reader Provider.
            readerProvider = new PCSCReaderProvider();

            // Create the default reader unit. On PC/SC, we will listen on all readers.
            readerUnit = readerProvider.CreateReaderUnit();

            if (readerUnit.ConnectToReader())
            {
                //("Waiting x seconds for a card insertion...");
                int    i        = 0;
                bool   readCard = false;
                String readID   = "";
                while (i < timeout && !waitCancelled && !readCard)
                {
                    i++;
                    if (readerUnit.WaitInsertion(1000))
                    {
                        if (readerUnit.Connect())
                        {
                            chip chip = readerUnit.GetSingleChip();
                            readerUnit.Disconnect();
                            readCard = true;
                            readID   = readerUnit.GetNumber(chip);
                        }
                    }
                }
                return(readID);
            }
            throw new Exception("No RFID Reader connected");
        }
 internal MultipleResults(IProvider provider, MetaFunction function, IObjectReaderSession session, ExecuteResult executeResult)
 {
     this.provider      = provider;
     this.function      = function;
     this.session       = session;
     this.executeResult = executeResult;
     _readerProvider    = provider as IReaderProvider;
 }
示例#6
0
		internal AdoCompiledQuery(IReaderProvider provider, Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, ICompiledSubQuery[] subQueries)
		{
			this.originalShape = provider.Services.Context.LoadOptions;
			this.query = query;
			this.queryInfos = queryInfos;
			this.factory = factory;
			this.subQueries = subQueries;
		}
示例#7
0
 internal AdoCompiledQuery(IReaderProvider provider, Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, ICompiledSubQuery[] subQueries)
 {
     this.originalShape = provider.Services.Context.LoadOptions;
     this.query         = query;
     this.queryInfos    = queryInfos;
     this.factory       = factory;
     this.subQueries    = subQueries;
 }
 internal ObjectReaderSession(TDataReader dataReader, IReaderProvider provider, object[] parentArgs, object[] userArgs, ICompiledSubQuery[] subQueries)
 {
     _dataReader = dataReader;
     _provider   = provider;
     _parentArgs = parentArgs;
     _userArgs   = userArgs;
     _subQueries = subQueries;
     _hasResults = true;
 }
示例#9
0
 // Methods
 internal ObjectReaderSession(TDataReader dataReader, IReaderProvider provider, object[] parentArgs,
                              object[] userArgs, ICompiledSubQuery[] subQueries)
 {
     this.dataReader = dataReader;
     this.provider   = provider;
     this.parentArgs = parentArgs;
     this.userArgs   = userArgs;
     this.subQueries = subQueries;
     hasResults      = true;
 }
示例#10
0
        public void ThrowArgumentNullException_WhenPassedReaderIsNull()
        {
            // arrange
            IReaderProvider reader          = null;
            var             writer          = new Mock <IWriterProvider>();
            var             commandProvider = new Mock <ICommandProvider>();

            // act and assert
            Assert.Throws <ArgumentNullException>(() => new Engine(reader, writer.Object, commandProvider.Object));
        }
示例#11
0
        public static IReaderProvider CreateReaderProviderFromName(string name)
        {
            IReaderProvider readerProvider = null;

            switch (name)
            {
            case RP_PCSC:
                readerProvider = new PCSCReaderProvider();
                break;
            }

            return(readerProvider);
        }
        private SearchFactoryImpl(Configuration cfg)
        {
            CfgHelper.Configure(cfg);

            Analyzer analyzer = InitAnalyzer(cfg);
            InitDocumentBuilders(cfg, analyzer);

            ISet<System.Type> classes = new HashedSet<System.Type>(documentBuilders.Keys);
            foreach (DocumentBuilder documentBuilder in documentBuilders.Values)
                documentBuilder.PostInitialize(classes);
            worker = WorkerFactory.CreateWorker(cfg, this);
            readerProvider = ReaderProviderFactory.CreateReaderProvider(cfg, this);
            BuildFilterCachingStrategy(cfg.Properties);
        }
示例#13
0
        public List <ItemPackageL> GetData()
        {
            List <ItemPackageL> items = new List <ItemPackageL>(dataCount);

            using IReaderProvider reader = NebulaModAPI.GetBinaryReader(data);

            for (int i = 0; i < dataCount; i++)
            {
                int itemId = reader.BinaryReader.ReadInt32();
                int count  = reader.BinaryReader.ReadInt32();
                int inc    = reader.BinaryReader.ReadInt32();
                items.Add(new ItemPackageL(itemId, count, inc));
            }

            return(items);
        }
        private SearchFactoryImpl(Configuration cfg)
        {
            CfgHelper.Configure(cfg);

            mapping = SearchMappingFactory.CreateMapping(cfg);

            Analyzer analyzer = InitAnalyzer(cfg);

            InitDocumentBuilders(cfg, analyzer);

            Iesi.Collections.Generic.ISet <System.Type> classes = new HashedSet <System.Type>(documentBuilders.Keys);
            foreach (DocumentBuilder documentBuilder in documentBuilders.Values)
            {
                documentBuilder.PostInitialize(classes);
            }
            worker         = WorkerFactory.CreateWorker(cfg, this);
            readerProvider = ReaderProviderFactory.CreateReaderProvider(cfg, this);
            BuildFilterCachingStrategy(cfg.Properties);
        }
示例#15
0
        public static IReaderUnit CreateReaderUnitFromName(IReaderProvider readerProvider, string name)
        {
            IReaderUnit readerUnit = null;

            if (readerProvider != null)
            {
                readerUnit = readerProvider.CreateReaderUnit();
                switch (readerProvider.RPType)
                {
                case RP_PCSC:
                {
                    IPCSCReaderUnit ru = readerUnit as IPCSCReaderUnit;
                    ru.SetName(name);
                }
                break;
                }
            }

            return(readerUnit);
        }
        private void InitializeReaderUnitList()
        {
            cbReaderUnit.Items.Clear();

            if (cbReaderProvider.SelectedIndex > -1)
            {
                string          rpkey          = cbReaderProvider.SelectedItem.ToString();
                IReaderProvider readerProvider = readerProviders[rpkey];
                object[]        rulist         = (object[])readerProvider.GetReaderList();
                cbReaderUnit.Items.Add(String.Empty);
                foreach (IReaderUnit ru in rulist)
                {
                    string name = ru.name;
                    if (!cbReaderUnit.Items.Contains(name))
                    {
                        cbReaderUnit.Items.Add(name);
                    }
                }
            }
        }
        public Engine(IReaderProvider reader, IWriterProvider writer, ICommandProvider commandProvider)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("Reader cannot be null!");
            }

            if (writer == null)
            {
                throw new ArgumentNullException("Writer cannot be null!");
            }

            if (commandProvider == null)
            {
                throw new ArgumentNullException("Validator cannot be null!");
            }

            this.commandProvider = commandProvider;
            this.writer          = writer;
            this.reader          = reader;
        }
示例#18
0
 public void Load(string filepath)
 {
     Reader = _gameLoader.Load(filepath);
 }
		public IObjectReaderSession CreateSession(DbDataReader reader, IReaderProvider provider, object[] parentArgs, object[] userArgs, ICompiledSubQuery[] subQueries)
		{
			Type sessionType = typeof(ObjectReaderSession<>).MakeGenericType(this.dataReaderType);
			return (IObjectReaderSession)Activator.CreateInstance(sessionType, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null,
				new object[] { reader, provider, parentArgs, userArgs, subQueries }, null);
		}
示例#20
0
        public IObjectReader Create(DbDataReader dataReader, bool disposeDataReader, IReaderProvider provider, object[] parentArgs, object[] userArgs, ICompiledSubQuery[] subQueries)
        {
            ObjectReaderSession <TDataReader> session = new ObjectReaderSession <TDataReader>((TDataReader)dataReader, provider, parentArgs, userArgs, subQueries);

            return(session.CreateReader(_materializeFunc, _namedColumns, _globals, _numberOfLocals, disposeDataReader));
        }
示例#21
0
        protected void Listen()
        {
            IsRunning         = true;
            waitRemoval       = new AutoResetEvent(false);
            insertedChip      = null;
            chipInsertionDate = null;

            log.Info(String.Format("Listening on {0} reader {1}...", readerProviderName, readerUnitName));

            readerProvider = DokanNFCConfig.CreateReaderProviderFromName(readerProviderName);
            readerUnit     = DokanNFCConfig.CreateReaderUnitFromName(readerProvider, readerUnitName);

            if (readerProvider != null && readerUnit != null)
            {
                if (readerUnit.ConnectToReader())
                {
                    DokanNFCConfig config = DokanNFCConfig.GetSingletonInstance();
                    switch (config.Mode)
                    {
                    case DisplayMode.RawRFID:
                        break;

                    case DisplayMode.NFC:
                        driver = new NFCDokanRFIDDriver(this);
                        break;
                    }

                    if (driver != null)
                    {
                        string mountPoint = config.MountPoint;
                        if (String.IsNullOrEmpty(mountPoint))
                        {
                            string[] mountPoints = DokanNFCConfig.GetAvailableMountPoints();
                            if (mountPoints.Length > 0)
                            {
                                mountPoint = mountPoints[0];
                            }
                        }

                        if (!String.IsNullOrEmpty(mountPoint))
                        {
                            DokanOptions options = DokanOptions.FixedDrive;
                            if (config.AlwaysMounted)
                            {
                                Mount(mountPoint, options);
                            }
                            else
                            {
                                options |= DokanOptions.RemovableDrive;
                            }
                            do
                            {
                                if (readerUnit.WaitInsertion(500))
                                {
                                    Thread.Sleep(400);
                                    chipInsertionDate = DateTime.Now;
                                    log.Info("Card inserted.");
                                    if (readerUnit.Connect())
                                    {
                                        insertedChip = readerUnit.GetSingleChip();
                                        if (insertedChip != null)
                                        {
                                            log.Info(String.Format("Chip type `{0}`", insertedChip.Type));
                                            if (!config.AlwaysMounted)
                                            {
                                                Mount(mountPoint, options);
                                            }

                                            RemovalChecker();
                                            while (!waitRemoval.WaitOne(500) && IsRunning)
                                            {
                                                ;
                                            }
                                            log.Info("Card removed.");

                                            if (!config.AlwaysMounted)
                                            {
                                                Unmount(mountPoint);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        log.Error("Cannot connect to the card.");
                                    }
                                    chipInsertionDate = null;
                                }
                            } while (IsRunning);

                            if (config.AlwaysMounted)
                            {
                                Unmount(mountPoint);
                            }
                        }
                        else
                        {
                            log.Error("No mount point.");
                        }
                    }
                    else
                    {
                        log.Error("No matching file system driver to mount.");
                    }
                    readerUnit.DisconnectFromReader();
                }
                else
                {
                    log.Error("Cannot connect to the reader.");
                }

                GC.KeepAlive(readerUnit);
                GC.KeepAlive(readerProvider);
            }
            else
            {
                log.Error("Error in RFID reader resource allocation.");
            }
        }
 public FakeEngine(IReaderProvider reader, IWriterProvider writer, ICommandProvider commandProvider)
     : base(reader, writer, commandProvider)
 {
 }
示例#23
0
        public static IReaderUnit CreateReaderUnitFromName(IReaderProvider readerProvider, string name)
        {
            IReaderUnit readerUnit = null;

            if (readerProvider != null)
            {
                readerUnit = readerProvider.CreateReaderUnit();
                switch (readerProvider.RPType)
                {
                    case RP_PCSC:
                        {
                            IPCSCReaderUnit ru = readerUnit as IPCSCReaderUnit;
                            ru.SetName(name);
                        }
                        break;
                }
            }

            return readerUnit;
        }
示例#24
0
        protected void Listen()
        {
            IsRunning = true;
            waitRemoval = new AutoResetEvent(false);
            insertedChip = null;
            chipInsertionDate = null;

            log.Info(String.Format("Listening on {0} reader {1}...", readerProviderName, readerUnitName));

            readerProvider = DokanNFCConfig.CreateReaderProviderFromName(readerProviderName);
            readerUnit = DokanNFCConfig.CreateReaderUnitFromName(readerProvider, readerUnitName);

            if (readerProvider != null && readerUnit != null)
            {
                if (readerUnit.ConnectToReader())
                {
                    DokanNFCConfig config = DokanNFCConfig.GetSingletonInstance();
                    switch (config.Mode)
                    {
                        case DisplayMode.RawRFID:
                            break;
                        case DisplayMode.NFC:
                            driver = new NFCDokanRFIDDriver(this);
                            break;
                    }

                    if (driver != null)
                    {
                        string mountPoint = config.MountPoint;
                        if (String.IsNullOrEmpty(mountPoint))
                        {
                            string[] mountPoints = DokanNFCConfig.GetAvailableMountPoints();
                            if (mountPoints.Length > 0)
                            {
                                mountPoint = mountPoints[0];
                            }
                        }

                        if (!String.IsNullOrEmpty(mountPoint))
                        {
                            DokanOptions options = DokanOptions.FixedDrive;
                            if (config.AlwaysMounted)
                            {
                                Mount(mountPoint, options);
                            }
                            else
                            {
                                options |= DokanOptions.RemovableDrive;
                            }
                            do
                            {
                                if (readerUnit.WaitInsertion(500))
                                {
                                    Thread.Sleep(400);
                                    chipInsertionDate = DateTime.Now;
                                    log.Info("Card inserted.");
                                    if (readerUnit.Connect())
                                    {
                                        insertedChip = readerUnit.GetSingleChip();
                                        if (insertedChip != null)
                                        {
                                            log.Info(String.Format("Chip type `{0}`", insertedChip.Type));
                                            if (!config.AlwaysMounted)
                                            {
                                                Mount(mountPoint, options);
                                            }

                                            RemovalChecker();
                                            while (!waitRemoval.WaitOne(500) && IsRunning) ;
                                            log.Info("Card removed.");

                                            if (!config.AlwaysMounted)
                                            {
                                                Unmount(mountPoint);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        log.Error("Cannot connect to the card.");
                                    }
                                    chipInsertionDate = null;
                                }
                            } while (IsRunning);

                            if (config.AlwaysMounted)
                            {
                                Unmount(mountPoint);
                            }
                        }
                        else
                        {
                            log.Error("No mount point.");
                        }
                    }
                    else
                    {
                        log.Error("No matching file system driver to mount.");
                    }
                    readerUnit.DisconnectFromReader();
                }
                else
                {
                    log.Error("Cannot connect to the reader.");
                }

                GC.KeepAlive(readerUnit);
                GC.KeepAlive(readerProvider);
            }
            else
            {
                log.Error("Error in RFID reader resource allocation.");
            }
        }
示例#25
0
 public void Load(string filepath)
 {
     Reader = _gameLoader.Load(filepath);
 }
示例#26
0
 public StageXmlReader(IReaderProvider readerProvider, EntityPlacementXmlReader entityReader, HandlerCommandXmlReader commandReader)
 {
     _readerProvider = readerProvider;
     _entityReader   = entityReader;
     _commandReader  = commandReader;
 }
示例#27
0
 public ReaderService(IReaderProvider readerProvider)
 {
     _provider = readerProvider;
 }
 public StageXmlReader(IReaderProvider readerProvider, EntityPlacementXmlReader entityReader, HandlerCommandXmlReader commandReader)
 {
     _readerProvider = readerProvider;
     _entityReader = entityReader;
     _commandReader = commandReader;
 }