コード例 #1
0
ファイル: ServiceItem.cs プロジェクト: GuanXP/GSerialize
        internal static ServiceItem Build <TService>(Object service, IDataSender sender)
        {
            System.Diagnostics.Debug.Assert(typeof(TService).IsInterface);
            System.Diagnostics.Debug.Assert(typeof(TService).IsAssignableFrom(service.GetType()));

            return(new ServiceItem(typeof(TService), service, sender));
        }
コード例 #2
0
ファイル: ProxyItem.cs プロジェクト: GuanXP/GSerialize
 private ProxyItem(Type interfaceType, Int16 id, IDataSender sender)
 {
     InterfaceType  = interfaceType;
     RemoteObjectID = id;
     _sender        = sender;
     Proxy          = ProxyGenerator.Instance.CreateProxy(this);
 }
コード例 #3
0
ファイル: ServiceItem.cs プロジェクト: GuanXP/GSerialize
 private ServiceItem(Type interfaceType, Object service, IDataSender sender)
 {
     Service       = service;
     InterfaceType = interfaceType;
     _sender       = sender;
     Dispatcher    = DispatcherGenerator.Instance.GetDispatcher(this);
 }
コード例 #4
0
        public ChatRivenBot(string launcherFullPath, IMouse mouseMover, IScreenStateHandler screenStateHandler,
                            IGameCapture gameCapture,
                            ObsSettings obsSettings,
                            string password,
                            IKeyboard keyboard,
                            IChatParser chatParser,
                            IDataSender dataSender,
                            IRivenCleaner rivenCleaner,
                            IRivenParserFactory rivenParserFactory,
                            RedTextParser redTextParser)
        {
            _launcherPath       = launcherFullPath;
            _mouse              = mouseMover;
            _screenStateHandler = screenStateHandler;
            _gameCapture        = gameCapture;
            _obsSettings        = obsSettings;
            _password           = password;
            _keyboard           = keyboard;
            _chatParser         = chatParser;
            _dataSender         = dataSender;
            _rivenCleaner       = rivenCleaner;
            _rivenParserFactory = rivenParserFactory;
            _redTextParser      = redTextParser;

            if (_obsSettings != null)
            {
                ConnectToObs();
            }
        }
コード例 #5
0
        // Use this for initialization
        void Start()
        {
            _leftHand  = new BluetoothDataSender(LeftHandComPort);
            _rightHand = new BluetoothDataSender(RightHandComPort);

            _leftHandInitialized  = _leftHand.Initialize();
            _rightHandInitialized = _rightHand.Initialize();
        }
コード例 #6
0
ファイル: ProxyItem.cs プロジェクト: GuanXP/GSerialize
        public static ProxyItem Build <TService>(Int16 remoteObjectID, IDataSender sender)
        {
            System.Diagnostics.Debug.Assert(typeof(TService).IsInterface);
            var proxy = new ProxyItem(typeof(TService), remoteObjectID, sender);

            System.Diagnostics.Debug.Assert(typeof(TService).IsAssignableFrom(proxy.Proxy.GetType()));
            return(proxy);
        }
コード例 #7
0
        public void ConnectTo(IDataSender dataSender, double weigth)
        {
            Link newLink = new Link()
            {
                Weight = weigth, dataReceiver = this, dataSender = dataSender
            };

            dataSenders[dataSender] = newLink;
            dataSender.ReverseConnexion(this, newLink);
        }
コード例 #8
0
        private void DoUpdateChangeKey(RedisClient client, string setId, object keyByte, byte[] values, bool isHash, byte[] buffer)
        {
            string key = isHash
                ? Encoding.UTF8.GetString((byte[])keyByte)
                : keyByte.ToString();
            dynamic entity = null;

            try
            {
                entity = CovertEntityObject(key, values);
                CacheType cacheType = CacheType.None;
                if (entity != null)
                {
                    SchemaTable schema;
                    Type        entityType = entity.GetType();
                    if (!EntitySchemaSet.TryGet(entityType, out schema))
                    {
                        EntitySchemaSet.InitSchema(entityType);
                    }
                    if (schema != null || EntitySchemaSet.TryGet(entityType, out schema))
                    {
                        cacheType = schema.CacheType;
                    }
                    if (cacheType != CacheType.None)
                    {
                        string redisKey = cacheType == CacheType.Dictionary
                            ? key.Split('|')[0]
                            : key.Split('_')[0];

                        using (IDataSender sender = DataSyncManager.GetRedisSender(redisKey))
                        {
                            sender.Send(entity);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("ChangeKey:{0} error:{1}", key, ex);
            }
            if (isHash)
            {
                client.HDel(setId, (byte[])keyByte);
            }
            else
            {
                client.ZRem(setId, buffer);
            }
            if (entity != null)
            {
                Type   type      = entity.GetType();
                string entityKey = string.Format("{0},{1}", key, type.Assembly.GetName().Name);
                client.HSet("__GLOBAL_SQL_CHANGE_KEYS_NEW", Encoding.UTF8.GetBytes(entityKey), new byte[] { 1 });
            }
        }
コード例 #9
0
        private bool TryGetSender(CollisionZone collisionZone, out IDataSender sender)
        {
            if (collisionZone.isLeft)
            {
                sender = _leftHand;
                return(_leftHandInitialized);
            }

            sender = _rightHand;
            return(_rightHandInitialized);
        }
コード例 #10
0
 public DefaultActivityMonitor(IActivityService activityService,
                               IActivityStack activityStack,
                               IDataSender dataSender)
 {
     _activityStack   = activityStack;
     _activityService = activityService;
     _dataSender      = dataSender;
     RefreshInterval  = 100;
     SendDataInterval = 20000;
     _started         = false;
 }
コード例 #11
0
        public DataSenderDaemon(
            IDataSender sender,
            AirlockConfig config,
            ILog log)
        {
            this.sender = sender;
            this.config = config;
            this.log    = log;

            routineCancellation = new TaskCompletionSource <byte>();
            routine             = Routine();
        }
コード例 #12
0
ファイル: ProxyCache.cs プロジェクト: GuanXP/GSerialize
 public TService CacheProxy <TService>(Int16 remoteObjectID, IDataSender sender)
 {
     lock (_items)
     {
         if (!_items.TryGetValue(remoteObjectID, out ProxyItem item))
         {
             item = ProxyItem.Build <TService>(remoteObjectID, sender);
             _items.Add(item.RemoteObjectID, item);
             _orderedItems.AddFirst(item); //�´����ķ���ǰ��
         }
         return((TService)item.Proxy);
     }
 }
コード例 #13
0
        public ChatWatcher(IDataSender dataSender, IChatParser chatParser, IGameCapture gameCapture, IMouseMover mouseMover, IRivenCleaner rivenCleaner, IRivenParser rivenParser,
                           IScreenStateHandler screenStateHandler)
        {
            this._dataSender         = dataSender;
            this._chatParser         = chatParser;
            this._gameCapture        = gameCapture;
            this._mouseMover         = mouseMover;
            this._rivenCleaner       = rivenCleaner;
            this._rivenParser        = rivenParser;
            this._screenStateHandler = screenStateHandler;

            Console.SetWindowSize(1, 1);
            Console.SetBufferSize(147, 10);
            Console.SetWindowSize(147, 9);
            Console.CursorVisible = false;
            Console.Clear();
            UpdateUI();
        }
コード例 #14
0
 public Int16 CacheServlet <TService>(TService service, IDataSender sender)
 {
     lock (_items)
     {
         var item = _items.Find(x => Object.ReferenceEquals(x.Service, service));
         if (item == null)
         {
             item = ServiceItem.Build <TService>(service, sender);
             if (_items.Count == 0)
             {
                 item.ObjectID = 0;                    //The first service object takes the fixed ID 0
             }
             _items.Add(item);
             _soretedItems.Add(item.ObjectID, item);
         }
         return(item.ObjectID);
     }
 }
コード例 #15
0
        public ToolStripDataSenderGuiConsole()
        {
            this.Stretch = true;

            this.mComboBoxConsole = new ToolStripComboBoxStretched();
            this.mComboBoxConsole.ComboBox.KeyUp += new KeyEventHandler(ComboBox_KeyUp);

            this.mButtonLineEnd = new ToolStripDropDownButton()
            {
                Alignment = ToolStripItemAlignment.Right,
                Text = "\\n",
                AutoSize = false,
                Width = 50,
                ToolTipText = "Line endings"
            };

            this.mButtonFormat = new ToolStripDropDownButton()
            {
                Alignment = ToolStripItemAlignment.Right,
                Text = "None",
                AutoSize = false,
                Width = 50,
                ToolTipText = "Send format"
            };

            this.mButtonSend = new ToolStripButton()
            {
                Alignment = ToolStripItemAlignment.Right,
                Text = "Send"
            };
            this.mButtonSend.Click += new EventHandler(mButtonSend_Click);

            this.Items.AddRange(new ToolStripItem[] { this.mComboBoxConsole, this.mButtonSend, this.mButtonLineEnd, this.mButtonFormat });

            this.mSender = null;
        }
コード例 #16
0
        public ToolStripDataSenderGuiButtonsStatic()
        {
            this.Stretch = true;

            this.mSender = null;
        }
コード例 #17
0
 public DbClientNotifyDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, DbClientNotifySerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.DbClient));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.DbClient);
 }
コード例 #18
0
 public WatcherServiceNotifyDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, WatcherServiceNotifySerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.WatcherService));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.WatcherService);
 }
コード例 #19
0
 public Cli2LogicServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Cli2LogicSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Cli2Logic));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Cli2Logic);
 }
コード例 #20
0
 public Logic2SchedulerServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Logic2SchedulerSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Logic2Scheduler));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Logic2Scheduler);
 }
コード例 #21
0
 public double GetWeigth(IDataSender sender)
 {
     return(0);
 }
コード例 #22
0
 public static void ConnectToDownstream <T>(this IDataSender <T> sender, IDataEncapsulator <T> encapsulator)
 {
     sender.SenderDataReady += encapsulator.Encapsulate;
 }
コード例 #23
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            SetRunFilePath();
            if (!System.IO.File.Exists(Filepath))
            {
                return;
            }

            JWCSerializer <JWCSaveFile> jse = new JWCSerializer <JWCSaveFile>();
            JWCSaveFile file = jse.Deserialize(this.Filepath);
            Color       cl   = Color.FromArgb(file.BackColor[0], file.BackColor[1], file.BackColor[2], file.BackColor[3]);

            Communicator = JWCCommunicatorFactory.CreateCommunicator(file.ComName);
            if (Communicator == null)
            {
                MessageBox.Show("创建通信器失败!这可能是由于没有导入相关插件导致的。", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                this.Close();
                return;
            }
            Communicator.InputProperty(file.Communicator);
            Adaptor = JWCCommunicatorFactory.CreateAdapter(file.AdaName);
            if (Adaptor == null)
            {
                MessageBox.Show("创建适配器失败!这可能是由于没有导入相关插件导致的。", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                this.Close();
                return;
            }
            Adaptor.InputProperty(file.ComAdapter);
            Adaptor.SetCommunicator(Communicator);

            foreach (var s in file.AllControls)
            {
                string     fullname = s["FullName"].ToString();
                JWCControl jc       = JWCControlFactory.CreateInstance(fullname);
                if (jc == null)
                {
                    MessageBox.Show("读入控件失败!这可能是由于没有导入相关插件导致的。", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                    this.Close();
                    return;
                }
                jc.InputProperty(s);
                jc.IsEditMode = false;
                jc.Init(false);
                jc.Parent = grid_main;
                grid_main.Children.Add(jc);
                IDataSender se = jc as IDataSender;
                if (se != null)
                {
                    Adaptor.AppendSender(se);
                }
                IDataReceiver re = jc as IDataReceiver;
                if (re != null)
                {
                    Adaptor.AppendReceiver(re);
                }
            }
            this.Height = grid_main.Height = file.Height;
            this.Width  = grid_main.Width = file.Width;
            SetBg(file.BgUsePic, cl, file.BackGroundPic);
            Communicator.Initialization();
            Adaptor.Initialization();
            Communicator.Start();
        }
コード例 #24
0
 public ChunkedDataSender(IDataSender dataSender)
 {
     this._dataSender = dataSender;
 }
コード例 #25
0
 public void ConnectTo(IDataSender dataExit)
 {
     DataSenders.Add(dataExit, weightInitialisation());
 }
コード例 #26
0
 public void ConnectTo(IDataSender sender)
 {
     //if(sender is PerceptronFinal perceptronFinal)
     dataSender = sender;
 }
コード例 #27
0
 public Logger(IDataSender dataSender)
 {
     _dataSender   = dataSender;
     _streamWriter = new System.IO.StreamWriter("log.txt", false);
 }
コード例 #28
0
 private static void SentDataToService(IDataSender dataSender, UnitCollectionsModel generatedData, HttpClient client)
 {
     var response = dataSender.SentData(generatedData, client);
     Console.WriteLine(response ? "Data is successfully sended!" : "Data is unsuccessfully sended!");
 }
コード例 #29
0
ファイル: IJWCCAdaptor.cs プロジェクト: StackExplode/JWC
 public abstract void AppendSender(IDataSender ctrl);
コード例 #30
0
 public void ConnectTo(IDataSender dataExit)
 {
     DataSenders.Add(dataExit, 0);
 }
コード例 #31
0
        private static void SentDataToService(IDataSender dataSender, UnitCollectionsModel generatedData, HttpClient client)
        {
            var response = dataSender.SentData(generatedData, client);

            Console.WriteLine(response ? "Data is successfully sent!" : "Data is unsuccessfully sent!");
        }
コード例 #32
0
 public ServiceDelegateStub(IDataSender dataSender, IMethodSerializer methodSerializer, RoutingRule routingRule)
 {
     this.dataSender       = dataSender;
     this.methodSerializer = methodSerializer;
     this.routingRule      = routingRule;
 }
コード例 #33
0
 private static void InitializeHttpClients(out IDataSender dataSender, out IDataReceiver dataReceiver)
 {
     dataSender   = DataSender.GetInstance;
     dataReceiver = DataReceiver.GetInstance;
 }
コード例 #34
0
        public static void ProcessRivenQueue(CancellationToken c, IRivenParserFactory factory, IDataSender dataSender, ConcurrentQueue <RivenParseTaskWorkItem> queue, IRivenCleaner cleaner)
        {
            var parser = factory.CreateRivenParser();

            while (true)
            {
                if (c.IsCancellationRequested)
                {
                    break;
                }
                RivenParseTaskWorkItem item = null;
                if (!queue.TryDequeue(out item) || item == null)
                {
                    Thread.Sleep(250);
                    continue;
                }
                foreach (var r in item.RivenWorkDetails)
                {
                    using (var croppedCopy = new Bitmap(r.CroppedRivenBitmap))
                    {
                        using (var cleaned = cleaner.CleanRiven(croppedCopy))
                        {
                            using (var cleanedCopy = new Bitmap(cleaned))
                            {
                                var riven = parser.ParseRivenTextFromImage(cleanedCopy, null);
                                riven.Polarity = parser.ParseRivenPolarityFromColorImage(croppedCopy);
                                riven.Rank     = parser.ParseRivenRankFromColorImage(croppedCopy);

                                riven.MessagePlacementId = r.RivenIndex;
                                riven.Name = r.RivenName;
                                dataSender.AsyncSendRivenImage(riven.ImageID, croppedCopy);
                                r.CroppedRivenBitmap.Dispose();
                                item.Model.Rivens.Add(riven);
                            }
                        }
                    }
                    dataSender.AsyncSendChatMessage(item.Model);
                }
            }

            if (parser is IDisposable)
            {
                ((IDisposable)parser).Dispose();
            }
        }
コード例 #35
0
 public Scene2CliServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Scene2CliSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Scene2Cli));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Scene2Cli);
 }
コード例 #36
0
 /// <summary>
 /// pas super safe mais osef
 /// </summary>
 /// <param name="sender"></param>
 /// <returns></returns>
 public double GetWeigth(IDataSender sender)
 {
     return(dataSenders[sender].Weight);
 }
コード例 #37
0
 private static void InitializeHttpClients(out IDataSender dataSender, out IDataReceiver dataReceiver)
 {
     dataSender = DataSender.GetInstance;
     dataReceiver = DataReceiver.GetInstance;
 }
コード例 #38
0
 public AllTextParser(IDataSender dataSender, WarframeLogParser warframeLogParser)
 {
     _dataSender        = dataSender;
     _warframeLogParser = warframeLogParser;
     _warframeLogParser.OnNewMessage += AllTextParser_OnNewMessage;
 }
コード例 #39
0
 public void ConnectTo(IDataSender dataSender)
 {
     ConnectTo(dataSender, weightInitialisation());
 }