コード例 #1
0
 private static void AfterRemoved(FDEvent fdEvent)
 {
     if (fd_EventCenter[fdEvent] == null)
     {
         fd_EventCenter.Remove(fdEvent);
     }
 }
コード例 #2
0
 public static void RemoveEvent(FDEvent fdEvent)
 {
     if (fd_EventCenter.ContainsKey(fdEvent))
     {
         fd_EventCenter.Remove(fdEvent);
     }
 }
コード例 #3
0
 public static void AddListener(FDEvent fdEvent, FDDelegate fdDelegate)
 {
     if (!ValidateAdd(fdEvent, fdDelegate))
     {
         return;
     }
     fd_EventCenter[fdEvent][typeof(FDDelegate)] = (FDDelegate)fd_EventCenter[fdEvent][typeof(FDDelegate)] + fdDelegate;
 }
コード例 #4
0
        public void InvalidHeaderFail()
        {
            const string Json = "{ \"timestamp\":\"2018-03-15T14:29:40Z\", \"event\":\"Music\", \"MusicTrack\":\"NoTrack\"  }";

            var fdEvent = FDEvent.Builder(Json) as FDEventCommander;

            Assert.IsNull(fdEvent);
        }
コード例 #5
0
        public void MusicTest()
        {
            const string Expected = "NoTrack";
            FDEventMusic fdEvent;

            fdEvent = FDEvent.Builder(JsonMusic) as FDEventMusic;

            Assert.AreEqual(Expected, fdEvent.MusicTrack);
        }
コード例 #6
0
        public void BuildTest()
        {
            const String      Expected = "r166781/r0 ";
            FDEventFileheader fdEvent;

            fdEvent = FDEvent.Builder(JsonFileHeader.Replace(@"\", @"\\")) as FDEventFileheader;

            Assert.AreEqual(Expected, fdEvent.Build);
        }
コード例 #7
0
        public void GameVersionTest()
        {
            const String      Expected = "3.0.2.402 EDH";
            FDEventFileheader fdEvent;

            fdEvent = FDEvent.Builder(JsonFileHeader.Replace(@"\", @"\\")) as FDEventFileheader;

            Assert.AreEqual(Expected, fdEvent.GameVersion);
        }
コード例 #8
0
        public void LanguageTest()
        {
            const String      Expected = "English\\UK";
            FDEventFileheader fdEvent;

            fdEvent = FDEvent.Builder(JsonFileHeader.Replace(@"\", @"\\")) as FDEventFileheader;

            Assert.AreEqual(Expected, fdEvent.Language);
        }
コード例 #9
0
        public void PartTest()
        {
            const int         Expected = 1;
            FDEventFileheader fdEvent;

            fdEvent = FDEvent.Builder(JsonFileHeader.Replace(@"\", @"\\")) as FDEventFileheader;

            Assert.AreEqual(Expected, fdEvent.Part);
        }
コード例 #10
0
        public void TimeStampTest()
        {
            DateTime Expected = new DateTime(2018, 3, 15, 14, 29, 40);
            FDEvent  fdEvent;

            fdEvent = FDEvent.Builder(JsonFileHeader.Replace(@"\", @"\\")) as FDEventFileheader;

            Assert.AreEqual(Expected, fdEvent.TimeStamp);
        }
コード例 #11
0
        public void InvalidHeaderFail()
        {
            const string Json = "{ \"timestamp\":\"2018-03-15T14:30:31Z\", \"event\":\"Friends\", \"Status\":\"Online\", \"Name\":\"Falcon Darkstar\"  }";

            FDEventMusic fdEvent;

            fdEvent = FDEvent.Builder(Json) as FDEventMusic;
            Assert.IsNull(fdEvent);
        }
コード例 #12
0
 public static void RemoveListener <T, A, B, C>(FDEvent fdEvent, FDDelegate <T, A, B, C> fdDelegate)
 {
     if (!ValidateRemove(fdEvent, fdDelegate))
     {
         return;
     }
     fd_EventCenter[fdEvent][typeof(FDDelegate <T, A, B, C>)] = (FDDelegate <T, A, B, C>)fd_EventCenter[fdEvent][typeof(FDDelegate <T, A, B, C>)] - fdDelegate;
     AfterRemoved(fdEvent);
 }
コード例 #13
0
        public void NameTest()
        {
            const string     Json     = "{ \"timestamp\":\"2018-03-15T14:31:10Z\", \"event\":\"Commander\", \"Name\":\"La Mancha\" }";
            const string     Expected = "La Mancha";
            FDEventCommander fdEvent;

            fdEvent = FDEvent.Builder(Json) as FDEventCommander;

            Assert.AreEqual(Expected, fdEvent.Name);
        }
コード例 #14
0
        public void FileHeaderTest()
        {
            const string Expected = "Fileheader";
            FDEvent      fdEvent;

            fdEvent = FDEvent.Builder(JsonFileHeader.Replace(@"\", @"\\")) as FDEventFileheader;


            Assert.AreEqual(Expected, fdEvent.Event);
        }
コード例 #15
0
        public void NameTest()
        {
            const string JsonFriends = "{ \"timestamp\":\"2018-03-15T14:30:31Z\", \"event\":\"Friends\", \"Status\":\"Online\", \"Name\":\"Falcon Darkstar\"  }";
            const string Expected    = "Falcon Darkstar";

            FDEventFriends fdEvent;

            fdEvent = FDEvent.Builder(JsonFriends) as FDEventFriends;

            Assert.AreEqual(Expected, fdEvent.Name);
        }
コード例 #16
0
 private static Boolean ValidateRemove(FDEvent fdEvent, Delegate fdDelegate)
 {
     if (fd_EventCenter.ContainsKey(fdEvent))
     {
         if (fd_EventCenter[fdEvent] != null && fd_EventCenter[fdEvent].ContainsKey(fdDelegate.GetType()) &&
             fd_EventCenter[fdEvent][fdDelegate.GetType()] != null)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #17
0
 private static Boolean ValidateAdd(FDEvent fdEvent, Delegate fdDelegate)
 {
     if (!fd_EventCenter.ContainsKey(fdEvent))
     {
         fd_EventCenter.Add(fdEvent, new Dictionary <Type, Delegate>());
     }
     if (!fd_EventCenter[fdEvent].ContainsKey(fdDelegate.GetType()))
     {
         fd_EventCenter[fdEvent].Add(fdDelegate.GetType(), null);
     }
     return(true);
 }
コード例 #18
0
    public static void Broadcast(FDEvent fdEvent)
    {
        Dictionary <Type, Delegate> eventCenter;

        if (fd_EventCenter.TryGetValue(fdEvent, out eventCenter))
        {
            Delegate fdDelegate;
            if (eventCenter.TryGetValue(typeof(FDDelegate), out fdDelegate))
            {
                ((FDDelegate)fdDelegate)();
            }
        }
    }
コード例 #19
0
    public static void Broadcast <T, A, B, C>(FDEvent fdEvent, T t, A a, B b, C c)
    {
        Broadcast <T, A, B>(fdEvent, t, a, b);
        Dictionary <Type, Delegate> eventCenter;

        if (fd_EventCenter.TryGetValue(fdEvent, out eventCenter))
        {
            Delegate fdDelegate;
            if (eventCenter.TryGetValue(typeof(FDDelegate <T, A, B, C>), out fdDelegate))
            {
                ((FDDelegate <T, A, B, C>)fdDelegate)(t, a, b, c);
            }
        }
    }