예제 #1
0
        public ImageTracker(string name)
            : base()
        {
            Console.WriteLine("MyImage created");
            this.name = name;
            pushDetector = new PushDetector();
            circleDetector = new CircleDetector();
            circleDetector.MinimumPoints = 50;
            steadyDetector = new SteadyDetector();

            flowRouter = new FlowRouter();
            broadcaster = new Broadcaster();

            broadcaster.AddListener(pushDetector);
            broadcaster.AddListener(circleDetector);
            broadcaster.AddListener(flowRouter);

            pushDetector.Push += new EventHandler<VelocityAngleEventArgs>(pushDetector_Push);
            steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady);
            circleDetector.OnCircle += new EventHandler<CircleEventArgs>(circleDetector_OnCircle);

            PrimaryPointCreate += new EventHandler<HandFocusEventArgs>(MyBox_PrimaryPointCreate);
            PrimaryPointDestroy += new EventHandler<IdEventArgs>(MyBox_PrimaryPointDestroy);
            PrimaryPointUpdate += new EventHandler<HandEventArgs>(MyBox_PrimaryPointUpdate);
            OnUpdate += new EventHandler<UpdateMessageEventArgs>(MyBox_OnUpdate);
        }
예제 #2
0
 void OnEnable()
 {
     if (null != SessionManager)
     {
         if (null == internalBroadcaster) internalBroadcaster = new Broadcaster();
         SessionManager.AddListener(internalBroadcaster);
     }
 }
예제 #3
0
 void OnDisable()
 {
     if (null != SessionManager)
     {
         if (null == internalBroadcaster) internalBroadcaster = new Broadcaster();
         SessionManager.RemoveListener(internalBroadcaster);
     }
 }
예제 #4
0
        public void should_raise_http_request_sent_event()
        {
            Sender.SetupResponse(new HttpResponseBuilder()
                                 .WithHttpStatusCode(HttpStatusCode.Accepted)
                                 .WithContent(Contents.JackProfile)
                                 .Build());

            var juliet          = ActorFactory.CreateSomeActorWithApiCallAbility(Sender);
            var publishedEvents = new Queue <IEvent>();

            Broadcaster.SubscribeToAllEvents(new DelegatingEventHandler(z => publishedEvents.Enqueue(z)));

            juliet.AttemptsTo(GetHttpInteraction(""));

            Check.That(publishedEvents.CountOfType <HttpRequestSentEvent>()).IsEqualTo(1);
            Check.That(publishedEvents.FirstElementOfType <HttpRequestSentEvent>().ResponseCode).IsEqualTo(HttpStatusCode.Accepted);
            Check.That(publishedEvents.FirstElementOfType <HttpRequestSentEvent>().ResponseContent).IsEqualTo(Contents.JackProfile);
        }
예제 #5
0
 // Broadcaster
 private void BroadcasterPulse(object sender, DoWorkEventArgs args)
 {
     while (IsStarted)
     {
         try
         {
             if (Conditions.InGameAndConnectedAndProductStartedNotInPause && IsStarted && Broadcaster.autoBroadcast)
             {
                 Broadcaster.BroadCastSituation();
             }
         }
         catch (Exception arg)
         {
             Logging.WriteError(string.Concat(arg), true);
         }
         Thread.Sleep(100);
     }
 }
예제 #6
0
        public void Broadcaster_Disposed_OnNext()
        {
            var b = new Broadcaster <int>();

            int result = -1;

            var sub = b.Subscribe(x => { result = x; });

            Assert.NotNull(sub);
            sub.Dispose();

            b.Dispose();

            b.OnNext(2);

            Assert.NotEqual(2, result);
            Assert.Equal(-1, result);
        }
예제 #7
0
        public void Setup()
        {
            Broadcaster.Reset();
            GroupAccess.Instance.Groups = new ConcurrentDictionary <long, Group>();
            for (byte i = 0; i < (byte)(GroupType.Group + 1); i++)
            {
                var session = TestHelpers.Instance.GenerateSession();
                session.RegisterChannel(null);
                _characters.Add(i, session.Character);
                session.Character.Group.JoinGroup(session.Character);
            }

            _pLeavePacketHandler = new PleavePacketHandler();

            var mock = new Mock <IBlacklistHttpClient>();

            _pJoinPacketHandler = new PjoinPacketHandler(_logger, mock.Object);
        }
예제 #8
0
        public async Task SetupAsync()
        {
            SystemTime.Freeze();
            Broadcaster.Reset();
            GroupAccess.Instance.Groups = new ConcurrentDictionary <long, GameObject.Group>();
            for (byte i = 0; i < (byte)(GroupType.Group + 1); i++)
            {
                var session = await TestHelpers.Instance.GenerateSessionAsync().ConfigureAwait(false);

                session.RegisterChannel(null);
                _characters.Add(i, session.Character);
                session.Character.Group !.JoinGroup(session.Character);
            }

            var mock = new Mock <IBlacklistHttpClient>();

            _pJoinPacketHandler = new PjoinPacketHandler(Logger, mock.Object);
        }
예제 #9
0
        // CALLBACKS
        public void RegisterCallback(ValueType Type, Broadcaster BOnValueChange)
        {
            if (Type == ValueType.Unassigned)
            {
                return;
            }
            //Debug.Log("Registering callback " + BOnValueChange);
            int t = (int)Type;

            if (BOnValueChange != null)
            {
                if (_callbacksOnValueChange[t] == null)
                {
                    _callbacksOnValueChange[t] = new List <Broadcaster>();
                }
                _callbacksOnValueChange[t].Add(BOnValueChange);
            }
        }
예제 #10
0
        /// <summary>
        /// Either gets the broadcaster from the db, or adds a new one.
        /// </summary>
        /// <param name="name">name of the broadcaster</param>
        /// <returns>Broadcaster object</returns>
        private async Task <Broadcaster> GetBroadcasterAsync(string name)
        {
            Broadcaster broadcaster = await _dbConnection.Broadcasters.FirstOrDefaultAsync(b => b.Name.ToLower() == name.ToLower());

            if (broadcaster != null)
            {
                return(broadcaster);
            }

            broadcaster = new Broadcaster {
                Name = FirstLetterToUpperRestLower(name)
            };

            _dbConnection.Broadcasters.Add(broadcaster);
            await _dbConnection.SaveChangesAsync();

            return(broadcaster);
        }
예제 #11
0
        public void Broadcaster_Completed_Does_Not_Fire_OnCompleted()
        {
            var b = new Broadcaster <int>();

            int count = 0;

            var sub = b.Subscribe(x => { }, () => { count++; });

            Assert.NotNull(sub);

            //Dispose will call complete once
            b.OnCompleted();

            //ensure it's not called again
            b.OnCompleted();

            Assert.Equal(1, count);
        }
예제 #12
0
        public void Setup()
        {
            PacketFactory.Initialize <NoS0575Packet>();
            Broadcaster.Reset();
            GroupAccess.Instance.Groups = new ConcurrentDictionary <long, Group>();
            for (byte i = 0; i < (byte)(GroupType.Group + 1); i++)
            {
                var handler = new GroupPacketController();
                var session = new ClientSession(null, new List <PacketController> {
                    handler
                }, null, null, _logger)
                {
                    SessionId = i
                };

                Broadcaster.Instance.RegisterSession(session);
                var acc = new AccountDto {
                    Name = $"AccountTest{i}", Password = "******".ToSha512()
                };
                var charaDto = new Character(null, null, null, null, null, null, null, _logger)
                {
                    CharacterId = i,
                    Name        = $"TestExistingCharacter{i}",
                    Slot        = 1,
                    AccountId   = acc.AccountId,
                    MapId       = 1,
                    State       = CharacterState.Active
                };

                session.InitializeAccount(acc);
                _handlers.Add(handler);
                handler.RegisterSession(session);

                var chara = charaDto;
                chara.Session = session;
                _characters.Add(i, chara);
                chara.Group.JoinGroup(chara);
                session.SetCharacter(chara);
                session.Character.MapInstance = new MapInstance(new Map(), Guid.NewGuid(), true,
                                                                MapInstanceType.BaseMapInstance,
                                                                new MapItemProvider(new List <IHandler <MapItem, Tuple <MapItem, GetPacket> > >()),
                                                                null, _logger);
            }
        }
예제 #13
0
        public void ShouldRegisterAllEventTagsWithChannel()
        {
            var channel   = new Channel();
            var eventTags = new EventTag[] {
                new EventTag("event-one"),
                new EventTag("event-two"),
            };
            var name = "Test-Broadcaster";
            var b    = new Broadcaster(
                name: name,
                channel: channel,
                eventTags: eventTags
                );

            foreach (EventTag tag in eventTags)
            {
                Assert.AreEqual(b, channel.GetBroadcasterFor(tag));
            }
        }
예제 #14
0
 public void Setup()
 {
     _characterRelationDao = new GenericDao <CharacterRelation, CharacterRelationDto, Guid>(_logger);
     Broadcaster.Reset();
     TestHelpers.Reset();
     _session                    = TestHelpers.Instance.GenerateSession();
     _channelHttpClient          = TestHelpers.Instance.ChannelHttpClient;
     _connectedAccountHttpClient = TestHelpers.Instance.ConnectedAccountHttpClient;
     _friendHttpClient           = TestHelpers.Instance.FriendHttpClient;
     _fDelPacketHandler          = new FdelPacketHandler(_friendHttpClient.Object, _channelHttpClient.Object,
                                                         _connectedAccountHttpClient.Object);
     _characterDao     = new Mock <IGenericDao <CharacterDto> >();
     _friendController = new FriendController(_logger, _characterRelationDao, _characterDao.Object,
                                              new FriendRequestHolder(), _connectedAccountHttpClient.Object);
     _friendHttpClient.Setup(s => s.GetListFriends(It.IsAny <long>()))
     .Returns((long id) => _friendController.GetFriends(id));
     _friendHttpClient.Setup(s => s.DeleteFriend(It.IsAny <Guid>()))
     .Callback((Guid id) => _friendController.Delete(id));
 }
예제 #15
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("Hello World!");

            var config = new ConfigurationBuilder()
                         .AddCommandLine(args)
                         .Build();

            var tokenSource = new CancellationTokenSource();

            void OnCancelKey(object sender, ConsoleCancelEventArgs e)
            {
                tokenSource.Cancel();
            }

            System.Console.CancelKeyPress += OnCancelKey;

            try
            {
                if (config["listen"] != null)
                {
                    System.Console.WriteLine("Going to listen");
                    IListener l = new Listener();
                    l.BroadcastEnded += (s, r) =>
                    {
                        System.Console.WriteLine($"bcid:{r.BroadcastId} file:{r.FileName}");
                    };
                    l.ListenUdpBroadcast(cancellationToken: tokenSource.Token).Wait(tokenSource.Token);
                }
                else if (config["broadcast"] != null)
                {
                    const string fileName = "test.7z";

                    System.Console.WriteLine($"Going to broadcast {fileName}");
                    var b = new Broadcaster();
                    b.BroadcastFileUdp(fileName, cancellationToken: tokenSource.Token).Wait(tokenSource.Token);
                }
            }
            catch (Exception e)
            {
                System.Console.WriteLine($"fatal error: {e}");
            }
        }
예제 #16
0
    // Use this for initialization
    void Start()
    {
//		broadcaster = GameObject.FindObjectOfTypae<Broadcaster> ();
        broadcaster     = GetComponent <Broadcaster>();
        objectContainer = new GameObject("Container");
        identity        = broadcaster.identity;

        plugin = new AndroidJavaClass("jp.kshoji.unity.sensor.UnitySensorPlugin").CallStatic <AndroidJavaObject> ("getInstance");

                #if UNITY_ANDROID
        if (plugin != null)
        {
            plugin.Call("startSensorListening", "linearacceleration");
            plugin.Call("startSensorListening", "magneticfield");
            plugin.Call("startSensorListening", "accelerometer");
            plugin.Call("startSensorListening", "gravity");
        }
                #endif
    }
예제 #17
0
        public void Start()
        {
            if (AlwaysRunning())
            {
                OnNotifyed("Программа уже запущена", TypeMessage.Critical);
                Thread.Sleep(4);
                Process.GetCurrentProcess().Close();
                Process.GetCurrentProcess().Kill();
                IsWorking = false;
                return;
            }
            Log.Write("Start P2pProxy", TypeMessage.Info);
            var port = MySettings.GetSetting("web", "port", 8081);

            Log.Write("[P2pProxy] Запуск Веб-сервера", TypeMessage.Info);
            try
            {
                _web = new WebServer(Convert.ToUInt16(port));
                _web.AddRouteUrl("/help", HelpRequest, HttpMethod.Get);
                _web.Start();
                IsWorking = true;
            }
            catch
            {
                IsWorking = false;
                OnNotifyed("Порт закрыт. Дальнейшая работа программы не возможна", TypeMessage.Critical);
            }

            Device = new P2pProxyDevice(_web, this);
            Device.Start();
            Login();

            try
            {
                Broadcaster = new VlcBroadcaster(_web);
            }
            catch (Exception)
            {
                OnNotifyed("Не удалось запустить VLC-сервер. Дальнейшая работа программы не возможна", TypeMessage.Error);
                IsWorking = false;
                return;
            }
        }
예제 #18
0
        public async Task SetupAsync()
        {
            await TestHelpers.ResetAsync().ConfigureAwait(false);

            Broadcaster.Reset();
            _session = await TestHelpers.Instance.GenerateSessionAsync().ConfigureAwait(false);

            _bazaarHttpClient    = new Mock <IBazaarHttpClient>();
            _itemProvider        = new Mock <IItemProvider>();
            _itemInstanceDao     = new Mock <IDao <IItemInstanceDto?, Guid> >();
            _cScalcPacketHandler = new CScalcPacketHandler(TestHelpers.Instance.WorldConfiguration,
                                                           _bazaarHttpClient.Object, _itemProvider.Object, Logger, _itemInstanceDao.Object);

            _bazaarHttpClient.Setup(b => b.GetBazaarLinkAsync(0)).ReturnsAsync(
                new BazaarLink
            {
                SellerName = _session.Character.Name,
                BazaarItem = new BazaarItemDto {
                    Price = 50, Amount = 1
                },
                ItemInstance = new ItemInstanceDto {
                    ItemVNum = 1012, Amount = 0
                }
            });
            _bazaarHttpClient.Setup(b => b.GetBazaarLinkAsync(2)).ReturnsAsync(
                new BazaarLink
            {
                SellerName = "test",
                BazaarItem = new BazaarItemDto {
                    Price = 60, Amount = 1
                },
                ItemInstance = new ItemInstanceDto {
                    ItemVNum = 1012, Amount = 0
                }
            });
            _bazaarHttpClient.Setup(b => b.GetBazaarLinkAsync(1)).ReturnsAsync((BazaarLink?)null);
            _bazaarHttpClient.Setup(b => b.RemoveAsync(It.IsAny <long>(), It.IsAny <int>(), It.IsAny <string>())).ReturnsAsync(true);
            _itemProvider.Setup(s => s.Convert(It.IsAny <IItemInstanceDto>())).Returns(new ItemInstance
            {
                Amount = 0, ItemVNum = 1012, Item = new Item()
            });
        }
예제 #19
0
        private void TrySignHeader()
        {
            Logger.LogTrace("TrySignHeader");
            if (_receipts is null || _nonce is null || _blockProducer is null)
            {
                Logger.LogTrace($"Not ready yet: _hasges {_receipts is null}, _nonce {_nonce is null}, _blockProducer {_blockProducer is null}");
                return;
            }

            if (!(_header is null))
            {
                Logger.LogTrace("Header already exists");
                return;
            }
            try
            {
                Logger.LogTrace("Try to create header");
                _header = _blockProducer.CreateHeader((ulong)Id.Era, _receipts, _nonce.Value, out _receipts);
                if (_header == null)
                {
                    Logger.LogTrace("Failed to create header");
                    return;
                }
            }
            catch (Exception e)
            {
                Logger.LogError($"Cannot sign header because of {e}");
                Terminate();
                Environment.Exit(1);
                return;
            }

            var signature = _crypto.SignHashed(
                _header.Keccak().ToBytes(),
                _keyPair.PrivateKey.Encode(), _useNewChainId
                ).ToSignature(_useNewChainId);

            Logger.LogTrace(
                $"Signed header {_header.Keccak().ToHex()} with pubKey {_keyPair.PublicKey.ToHex()}"
                );
            Broadcaster.Broadcast(CreateSignedHeaderMessage(_header, signature));
        }
예제 #20
0
        public void ShouldGiveACollectionWithoutNulls()
        {
            var eventTags = new EventTag[] {
                null,
                new EventTag("event-one"),
                null,
                new EventTag("event-two"),
                null
            };
            var name = "some-name";
            var b    = new Broadcaster(
                name: name,
                channel: null,
                eventTags: eventTags
                );
            var collection = b.GetEventTags();

            Assert.IsTrue(collection.Length == 2);
            CollectionAssert.AllItemsAreNotNull(collection);
        }
예제 #21
0
        public void TestGetFoods()
        {
            var broadcaster = new Broadcaster();
            var foodlayer   = new FoodManager(broadcaster);

            foodlayer.Create(new Vector2(5.600638f, -2.408553f));
            foodlayer.RefreshGrid();

            {
                var pos   = new Vector2(5.600638f, -2.408553f);
                var foods = foodlayer.GetFoods(pos, 1);
                Assert.Equal(1, foods.Count());
            }

            {
                var pos   = new Vector2(5.420763f, -2.279034f);
                var foods = foodlayer.GetFoods(pos, 1);
                Assert.Equal(1, foods.Count());
            }
        }
예제 #22
0
 private void DoBoth()
 {
     Broadcaster.ToSender(input, "Yo listen up, here's the story");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "About a little guy that lives in a blue world");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "And all day and all night and everything he sees is just blue");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "Like him, inside and outside");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "Blue his house with a blue little window");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "And a blue Corvette");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "And everything is blue for him");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "And himself and everybody around");
     Thread.Sleep(100);
     Broadcaster.ToSender(input, "'Cause he ain't got nobody to listen to");
 }
예제 #23
0
        public async Task FindBroadcaster(string twitchId, string twitchBotApiLink, string username = "")
        {
            Broadcaster broadcaster = null;

            if (!string.IsNullOrEmpty(username))
            {
                broadcaster = await ApiBotRequest.GetExecuteTaskAsync <Broadcaster>(twitchBotApiLink + $"broadcasters/get/{twitchId}?username={username}");
            }
            else
            {
                broadcaster = await ApiBotRequest.GetExecuteTaskAsync <Broadcaster>(twitchBotApiLink + $"broadcasters/get/{twitchId}");
            }

            if (broadcaster != null)
            {
                Username   = broadcaster.Username;
                TwitchId   = twitchId;
                DatabaseId = broadcaster.Id;
            }
        }
예제 #24
0
 private void TrySendReadyMessageFromReady()
 {
     var(bestRootCnt, bestRoot) = _readyMessages
                                  .Where(x => x != null)
                                  .GroupBy(x => x !.MerkleTreeRoot)
                                  .Select(m => (cnt: m.Count(), key: m.Key))
                                  .OrderByDescending(x => x.cnt)
                                  .First();
     if (bestRootCnt != F + 1)
     {
         return;
     }
     if (_readySent)
     {
         return;
     }
     Broadcaster.Broadcast(CreateReadyMessage(bestRoot));
     _readySent = true;
     Logger.LogTrace($"Protocol {Id} got enough READYs and broadcasted READY message");
 }
예제 #25
0
        private void TrySendReadyMessageFromEchos()
        {
            if (_readySent)
            {
                return;
            }
            var(bestRootCnt, bestRoot) = _echoMessages
                                         .Where(x => x != null)
                                         .GroupBy(x => x !.MerkleTreeRoot)
                                         .Select(m => (cnt: m.Count(), key: m.Key))
                                         .OrderByDescending(x => x.cnt)
                                         .First();
            if (bestRootCnt != N - F)
            {
                return;
            }
            var interpolationData = _echoMessages
                                    .WithIndex()
                                    .Where(x => bestRoot.Equals(x.item?.MerkleTreeRoot))
                                    .Select(t => (echo: t.item !, t.index))
                                    .Take(N - 2 * F)
                                    .ToArray();
            var restoredData       = DecodeFromEchos(interpolationData);
            var restoredMerkleTree = ConstructMerkleTree(
                restoredData
                .Batch(interpolationData.First().echo.Data.Length)
                .Select(x => x.ToArray())
                .ToArray()
                );

            if (!restoredMerkleTree[1].Equals(bestRoot))
            {
                Logger.LogError($"{Id}: Interpolated result merkle root does not match!");
                Abort();
                return;
            }

            Broadcaster.Broadcast(CreateReadyMessage(bestRoot));
            _readySent = true;
            Logger.LogTrace($"Protocol {Id} got enough ECHOs and broadcasted READY message");
        }
        public async Task TestCmd(ObsidianContext ctx, string arg)
        {
            switch (arg)
            {
            case "reload":
                try
                {
                    Globals.Config = await ConfigManager.LoadConfig();

                    await ctx.Player.SendMessageAsync($"§aConfig reloaded successfully");

                    await Broadcaster.StartBroadcasting();
                }
                catch (Exception e)
                {
                    await ctx.Player.SendMessageAsync($"§cAn error occurred when loading a config. Broadcasting stopped\n{e.Message}");

                    Broadcaster.StopBroadcasting();
                }
                break;

            default:
            case "about":

                var msg = IChatMessage.CreateNew();
                msg.Text = "§aObsidian Announcer §f- §dInterval auto announcement for JSON messages";
                var clickComponent = ITextComponent.CreateNew();
                clickComponent.Action = ETextAction.OpenUrl;
                clickComponent.Value  = "https://github.com/roxxel/ObsidianAnnouncer";

                var hoverComponent = ITextComponent.CreateNew();
                hoverComponent.Action = ETextAction.ShowText;
                hoverComponent.Value  = "§aPlugin github repo";

                msg.HoverEvent = hoverComponent;
                msg.ClickEvent = clickComponent;
                await ctx.Player.SendMessageAsync(msg);

                break;
            }
        }
예제 #27
0
        private void HandleBValMessage(int sender, BValMessage bval)
        {
            if (bval.Epoch != _broadcastId.Epoch || bval.Agreement != _broadcastId.Agreement)
            {
                throw new ArgumentException("era, agreement or epoch of message mismatched");
            }

            var b = bval.Value ? 1 : 0;

            if (_receivedValues[sender].Contains(b == 1))
            {
                Logger.LogTrace($"{_broadcastId}: double receive message {bval} from {sender}");
                return;
            }

            _receivedValues[sender].Add(b == 1);
            ++_receivedCount[b];

            if (!_wasBvalBroadcasted[b] && _receivedCount[b] >= F + 1)
            {
                BroadcastBVal(bval.Value);
            }

            if (_receivedCount[b] < 2 * F + 1)
            {
                return;
            }
            if (_binValues.Contains(b == 1))
            {
                return;
            }

            _binValues = _binValues.Add(b == 1);
            if (_binValues.Count() == 1)
            {
                Broadcaster.Broadcast(CreateAuxMessage(b));
            }

            RevisitAuxMessages();
            RevisitConfMessages();
        }
예제 #28
0
        public async Task SetupAsync()
        {
            await TestHelpers.ResetAsync().ConfigureAwait(false);

            Broadcaster.Reset();
            _session = await TestHelpers.Instance.GenerateSessionAsync().ConfigureAwait(false);

            _session.Character.StaticBonusList = new List <StaticBonusDto>();
            _bazaarHttpClient         = new Mock <IBazaarHttpClient>();
            _inventoryItemInstanceDao = new Mock <IDao <InventoryItemInstanceDto, Guid> >();
            _itemInstanceDao          = new Mock <IDao <IItemInstanceDto?, Guid> >();
            _bazaarHttpClient.Setup(s => s.AddBazaarAsync(It.IsAny <BazaarRequest>())).ReturnsAsync(LanguageKey.OBJECT_IN_BAZAAR);
            var items = new List <ItemDto>
            {
                new Item {
                    Type = NoscorePocketType.Main, VNum = 1012, IsSoldable = true
                },
                new Item {
                    Type = NoscorePocketType.Main, VNum = 1013
                },
                new Item {
                    Type = NoscorePocketType.Equipment, VNum = 1, ItemType = ItemType.Weapon
                },
                new Item {
                    Type = NoscorePocketType.Equipment, VNum = 2, ItemType = ItemType.Weapon
                },
                new Item {
                    Type = NoscorePocketType.Equipment, VNum = 912, ItemType = ItemType.Specialist
                },
                new Item {
                    Type = NoscorePocketType.Equipment, VNum = 924, ItemType = ItemType.Fashion
                }
            };

            _itemProvider = new ItemGenerationService(items,
                                                      new EventLoaderService <Item, Tuple <InventoryItemInstance, UseItemPacket>, IUseItemEventHandler>(new List <IEventHandler <Item, Tuple <InventoryItemInstance, UseItemPacket> > >()), _logger);
            _cregPacketHandler = new CRegPacketHandler(TestHelpers.Instance.WorldConfiguration,
                                                       _bazaarHttpClient.Object, _itemInstanceDao.Object, _inventoryItemInstanceDao.Object);
            _itemInstanceDao.Setup(s => s.TryInsertOrUpdateAsync(It.IsAny <IItemInstanceDto?>()))
            .Returns <IItemInstanceDto?>(Task.FromResult);
        }
예제 #29
0
 public AccountController(
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IEmailSender emailSender,
     ILogger <AccountController> logger,
     DoctorsService doctorsService,
     DonorService donorService,
     AdminService adminService,
     EmployeeService employeeService,
     Broadcaster broadcaster)
 {
     _userManager     = userManager;
     _signInManager   = signInManager;
     _emailSender     = emailSender;
     _logger          = logger;
     _doctorsService  = doctorsService;
     _adminService    = adminService;
     _donorsService   = donorService;
     _employeeService = employeeService;
     _broadcaster     = broadcaster;
 }
예제 #30
0
        public void StartBroadcasting(Guid sessionId)
        {
            if (broadcasters.Find(b => b.SessionId == sessionId) != null)
            {
                return;
            }

            Broadcaster broadcaster = new Broadcaster();

            broadcaster.SessionId = sessionId;

            CancellationTokenSource source = new CancellationTokenSource();

            broadcaster.CancellationTokenSource = source;

            Task task = Task.Run(() => Broadcast(sessionId, source.Token));

            broadcaster.Task = task;

            broadcasters.Add(broadcaster);
        }
예제 #31
0
        public async Task OnLoad(IServer server)
        {
            server.RegisterCommandClass <MainModule>();
            Globals.Logger     = Logger;
            Globals.FileWriter = FileWriter;
            Globals.FileReader = FileReader;
            Globals.Server     = server;
            Broadcaster.Initialize();
            try
            {
                Globals.Config = await ConfigManager.LoadConfig();

                await Broadcaster.StartBroadcasting();
            }
            catch (Exception e)
            {
                Logger.LogError(e.Message);
            }
            Logger.Log($"Loaded {Info.Name}");
            await Task.CompletedTask;
        }
예제 #32
0
        // We need to handle this message carefully like how about decoding a random message with random length
        // and the value of 'share.ShareId' needs to be checked. If it is out of range, it can throw exception
        private void HandleDecryptedMessage(TPKEPartiallyDecryptedShareMessage msg, int senderId)
        {
            PartiallyDecryptedShare?share = null;

            try
            {
                // Converting any random bytes to G1 is not possible
                share = Wallet.TpkePublicKey.Decode(msg);
                _decryptedShares[share.ShareId].Add(share);
            }
            catch (Exception exception)
            {
                var pubKey = Broadcaster.GetPublicKeyById(senderId) !.ToHex();
                Logger.LogWarning($"Exception occured handling Decrypted message: {msg} from {senderId} ({pubKey})");
            }

            if (!(share is null))
            {
                CheckDecryptedShares(share.ShareId);
            }
        }
        public void Setup()
        {
            TestHelpers.Reset();
            Broadcaster.Reset();
            _session             = TestHelpers.Instance.GenerateSession();
            _bazaarHttpClient    = new Mock <IBazaarHttpClient>();
            _itemProvider        = new Mock <IItemProvider>();
            _itemInstanceDao     = new Mock <IGenericDao <IItemInstanceDto> >();
            _cScalcPacketHandler = new CScalcPacketHandler(TestHelpers.Instance.WorldConfiguration,
                                                           _bazaarHttpClient.Object, _itemProvider.Object, _logger, _itemInstanceDao.Object);

            _bazaarHttpClient.Setup(b => b.GetBazaarLink(0)).Returns(
                new BazaarLink
            {
                SellerName = _session.Character.Name,
                BazaarItem = new BazaarItemDto {
                    Price = 50, Amount = 1
                },
                ItemInstance = new ItemInstanceDto {
                    ItemVNum = 1012, Amount = 0
                }
            });
            _bazaarHttpClient.Setup(b => b.GetBazaarLink(2)).Returns(
                new BazaarLink
            {
                SellerName = "test",
                BazaarItem = new BazaarItemDto {
                    Price = 60, Amount = 1
                },
                ItemInstance = new ItemInstanceDto {
                    ItemVNum = 1012, Amount = 0
                }
            });
            _bazaarHttpClient.Setup(b => b.GetBazaarLink(1)).Returns((BazaarLink)null);
            _bazaarHttpClient.Setup(b => b.Remove(It.IsAny <long>(), It.IsAny <int>(), It.IsAny <string>())).Returns(true);
            _itemProvider.Setup(s => s.Convert(It.IsAny <IItemInstanceDto>())).Returns(new ItemInstance
            {
                Amount = 0, ItemVNum = 1012, Item = new Item()
            });
        }
예제 #34
0
        public HandData()
            : base()
        {
            Console.WriteLine("Constructing MyCanvas");
            pushDetector = new PushDetector();
            swipeDetector = new SwipeDetector();
            steadyDetector = new SteadyDetector();
            flowRouter = new FlowRouter();
            broadcaster = new Broadcaster();

            broadcaster.AddListener(pushDetector);
            broadcaster.AddListener(flowRouter);

            pushDetector.Push += new EventHandler<VelocityAngleEventArgs>(pushDetector_Push);
            steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady);
            swipeDetector.GeneralSwipe += new EventHandler<DirectionVelocityAngleEventArgs>(swipeDetector_GeneralSwipe);

            PrimaryPointCreate += new EventHandler<HandFocusEventArgs>(MyCanvas_PrimaryPointCreate);
            PrimaryPointDestroy += new EventHandler<IdEventArgs>(MyCanvas_PrimaryPointDestroy);
            PrimaryPointUpdate += new EventHandler<HandEventArgs>(MyCanvas_PrimaryPointUpdate);
            OnUpdate += new EventHandler<UpdateMessageEventArgs>(MyCanvas_OnUpdate);
        }
        // Helper method

        private Broadcaster GetConfiguredHub(IDomain domain = null, string connId = null, string host = null)
        {
            domain = domain ?? new Domain(new Calculator());
            var hub = new Broadcaster(domain);
            connId = connId ?? "1234";
            host = host ?? "myhost";

            // Setup headers
            var mockRequest = new Mock<IRequest>();
            var mockHeaders = new Mock<INameValueCollection>();
            mockHeaders.Setup(h => h["host"]).Returns(host);
            mockRequest.Setup(r => r.Headers).Returns(mockHeaders.Object);

            // Setup user
            var identity = new GenericPrincipal(new GenericIdentity("jmaguilar"), new[] { "admin" });
            mockRequest.Setup(r => r.User).Returns(identity);

            // Setup context & connection id
            hub.Context = new HubCallerContext(mockRequest.Object, connId);

            return hub;

        }
예제 #36
0
        public MyBox(System.Windows.Forms.Panel box, string name) :
            base()
        {
            this.name = name;
            this.box = box;

            pushDetector = new PushDetector();
            swipeDetector = new SwipeDetector();
            steadyDetector = new SteadyDetector();
            flowRouter = new FlowRouter();
            broadcaster = new Broadcaster();

            broadcaster.AddListener(pushDetector);
            broadcaster.AddListener(flowRouter);

            pushDetector.Push +=new EventHandler<VelocityAngleEventArgs>(pushDetector_Push);
            steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady);
            swipeDetector.GeneralSwipe += new EventHandler<DirectionVelocityAngleEventArgs>(swipeDetector_GeneralSwipe);

            PrimaryPointCreate += new EventHandler<HandFocusEventArgs>(MyBox_PrimaryPointCreate);
            PrimaryPointDestroy += new EventHandler<IdEventArgs>(MyBox_PrimaryPointDestroy);
            OnUpdate += new EventHandler<UpdateMessageEventArgs>(MyBox_OnUpdate);
        }
예제 #37
0
파일: MainPage.cs 프로젝트: gsterjov/fusemc
 /// <summary>
 /// Send a command to a plugin.
 /// </summary>
 public void SendCommand(Broadcaster receiver, string command, object obj)
 {
     if (receiver != null)
         receiver.SendCommand (command, obj);
 }
예제 #38
0
 public CpuHub(Broadcaster broadCaster)
 {
     this.broadCaster = broadCaster;
 }
예제 #39
0
        public MyBox(System.Windows.Forms.Panel box, string name)
            : base()
        {
            this.name = name;
            this.box = box;

            pushDetector = new PushDetector();
            swipeDetector = new SwipeDetector();
            steadyDetector = new SteadyDetector();
            flowRouter = new FlowRouter();
            broadcaster = new Broadcaster();

            broadcaster.AddListener(pushDetector);
            broadcaster.AddListener(flowRouter);

            pushDetector.Push += new PushDetector.PushHandler(pushDetector_Push);
            steadyDetector.Steady += new SteadyDetector.SteadyHandler(steadyDetector_Steady);
            swipeDetector.GeneralSwipe += new SwipeDetector.GeneralSwipeHandler(swipeDetector_GeneralSwipe);

            PrimaryPointCreate += new PrimaryPointCreateHandler(MyBox_PrimaryPointCreate);
            PrimaryPointDestroy += new PrimaryPointDestroyHandler(MyBox_PrimaryPointDestroy);
            OnUpdate += new UpdateHandler(MyBox_OnUpdate);
        }
        public bool initializeSensor(String xmlPath)
        {
            try

            {

                pbuffer =new  Point[6];
                openpalm = new OpenPalm();
                scrHeight = SystemInformation.PrimaryMonitorSize.Height;
                scrWidth = SystemInformation.PrimaryMonitorSize.Width;

                mouseSpeed = SystemInformation.MouseSpeed * 0.15;
                pointCollections = new PointCollection();
                /*OpenNI objects - Context, DepthGenerator and DepthMetaData are initialized here*/
                cxt = new Context(xmlPath);
                depthGen = cxt.FindExistingNode(NodeType.Depth) as DepthGenerator;
                gsHandsGenerator = cxt.FindExistingNode(NodeType.Hands) as HandsGenerator;
                gsHandsGenerator.SetSmoothing(0.1f);
                depthMeta = new DepthMetaData();
                if (depthGen == null) return false;

                xRes = depthGen.MapOutputMode.XRes;
                yRes = depthGen.MapOutputMode.YRes;

                /*NITE objects - Session manager, PointControl is initialized here*/
                sessionMgr = new SessionManager(cxt, "Wave", "RaiseHand");

                pointCtrl = new PointControl("PointTracker");
                steadydetector = new SteadyDetector();
                flrouter = new FlowRouter();
                brodcaster = new Broadcaster();
                steadydetector.DetectionDuration = 200;

                steadydetector.Steady+=new EventHandler<SteadyEventArgs>(steadydetector_Steady);
                steadydetector.NotSteady+=new EventHandler<SteadyEventArgs>(steadydetector_NotSteady);
              /*  pointCtrl.PrimaryPointCreate += new EventHandler<HandFocusEventArgs>(pointCtrl_PrimaryPointCreate);
                pointCtrl.PrimaryPointUpdate += new EventHandler<HandEventArgs>(pointCtrl_PrimaryPointUpdate);
                pointCtrl.PrimaryPointDestroy += new EventHandler<IdEventArgs>(pointCtrl_PrimaryPointDestroy);*/
                pointCtrl.PointCreate += new EventHandler<HandEventArgs>(pointCtrl_PointCreate);
                pointCtrl.PointUpdate += new EventHandler<HandEventArgs>(pointCtrl_PointUpdate);
                pointCtrl.PointDestroy += new EventHandler<IdEventArgs>(pointCtrl_PointDestroy);

                sessionMgr.AddListener(steadydetector);
               sessionMgr.AddListener(pointCtrl);  //make the session manager listen to the point control

                isActive = false;                   //set lifecycle flag to false
                            //fill the handpoint coordinates with invalid values
                         //initialize the clipping matrix

                HandPointBuffer = new ArrayList();

            }
            catch (Exception e) { return false; }

            return true;
        }
예제 #41
0
        protected override void OnLoad(EventArgs e)
        {
            string version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            Title = String.Format("StoneVox 3D - version {0}", version);

            GL.Viewport(0, 0, Width, Height);
            Qfont_1280 = new QFont("data\\fonts\\Bigfish.ttf", 11.2f, new QFontBuilderConfiguration(true, false));
            Qfont_1400 = new QFont("data\\fonts\\Bigfish.ttf", 12f, new QFontBuilderConfiguration(true, false));
            Qfont_1920 = new QFont("data\\fonts\\Bigfish.ttf", 15, new QFontBuilderConfiguration(true, false));
            if (Width <= 1280)
            {
                Qfont = Qfont_1280;
            }
            else if (Width < 1400)
            {
                Qfont = Qfont_1400;
            }
            else
            {
                Qfont = Qfont_1920;
            }

            this.Qfont.Options.Colour = Color.White;
            //this.Qfont.Options.TransformToViewport = new TransformViewport(-1,-1,2,2);

            Scale.SetHScaling(0, Width);
            Scale.SetVScaling(0, Height);

            ShaderUtil.CreateShader("quad_interpolation", "./data/shaders/QuadInterpolation.vs", "./data/shaders/QuadInterpolation.fs");

            broadcaster = new Broadcaster();
            manager = new QbManager(broadcaster);
            input = new Input(this);
            camera = new Camera(this, input, manager);
            brushes = new BrushManager(this, input);
            floor = new Floor(camera, broadcaster);
            gui = new GUI(this, manager, input);
            selection = new Selection(this,brushes, input, manager, floor, gui);
            renderer = new Wireframe(camera, selection, floor, input);
            undoredo = new UndoRedo(input);

            selection.GenerateVertexArray();

            if(!manager.HasModel)
                manager.AddEmpty();
            camera.LookAtModel(true);

            backcolor = new Color4(0, 0, 0, 0);

            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.Blend);
            GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);

            GL.Enable(EnableCap.CullFace);
            GL.CullFace(CullFaceMode.Back);

            int ole_hresult = OleInitialize(IntPtr.Zero);
            IntPtr handle = FindWindowByCaption(IntPtr.Zero, Title);
            dnd = new DragDropTarget();
            int dnd_hresult = RegisterDragDrop(handle, dnd);

            raycaster = new Raycaster(this, camera, selection, floor, input, manager, gui);
            selection.raycaster = raycaster;

            Client.Initialized = true;
            base.OnLoad(e);
            SetForegroundWindow(WindowInfo.Handle);
        }
 void Awake()
 {
     if (null == broadcaster) broadcaster = new Broadcaster();
 }
예제 #43
0
파일: Plugin.cs 프로젝트: gsterjov/fusemc
        /// <summary>
        /// Initiates the tray icon plugin.
        /// </summary>
        public void Initiate(IFuse fuse)
        {
            this.fuse = fuse;

            if (!plugin_initiated)
                createTrayIcon ();

            tray.ShowTray ();

            broadcaster = fuse.PluginCommunicator.RegisterPlugin ("Fuse.Plugin.TrayIcon", Version, broadcastHandler);
            fuse.Quiting += on_quit;
        }
예제 #44
0
 /// <summary>
 /// Setup builds an XN Context, Session Manager and all the detectors. 
 /// It also adds the callbacks for the SessionManager and adds the listeners on the Broadcaster. 
 /// </summary>
 private void Setup()
 {
     //build the context
     Context = new Context(CONFIG);
     //build session manager
     SeshManager = new SessionManager(Context,"RaiseHand","RaiseHand");
     SeshManager.SetQuickRefocusTimeout(15000);
     //build the FlowRouter
     Flowy  = new FlowRouter();
     //build the Broadcaster
     BCaster = new Broadcaster();
     //build the detectors
     Pushy = new PushDetector();
     Swipy = new SwipeDetector();
     //setup all the callbacks
     SetupCallbacks();
     Flowy.SetActive(BCaster);
     //add the flow router to the session
     SeshManager.AddListener(Flowy);
     SeshManager.SessionStart += SessionStarted;
     //add the listeners to BCaster
     BCaster.AddListener(Pushy);
     BCaster.AddListener(Swipy);
 }
예제 #45
0
 public MinesweeperHub(Broadcaster broadcaster)
 {
     _broadcaster = broadcaster;
 }
예제 #46
0
 protected void RemoveListener(MessageListener listener)
 {
     if (null == internalBroadcaster) internalBroadcaster = new Broadcaster();
     internalBroadcaster.RemoveListener(listener);
 }
 public void RemoveListener(MessageListener listener)
 {
     if (null == broadcaster) broadcaster = new Broadcaster();
     broadcaster.RemoveListener(listener);
 }