예제 #1
0
        /// <summary>
        /// constructor of IMForm
        /// </summary>
        public IMForm(SDCSCommon.Network.BuddyListData bld)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //

            buddyData = bld;
        }
예제 #2
0
        /// <summary>
        /// When a user state changes call this function to notify all the relevant clients
        /// </summary>
        /// <param name="userID">ID of the user who's state has changed</param>
        /// <param name="username">The username of the user who's state has changed</param>
        /// <param name="state">The new state of the user</param>
        public static void notifyBuddyStatus(int userID, string username, SDCSCommon.Network.UserState state)
        {
            SDCSCommon.Network.BuddyListData bld = new SDCSCommon.Network.BuddyListData();
            bld.userID = userID;
            bld.username = username;
            bld.userState = state;

            lock (buddyStates.SyncRoot)
            {
                if (buddyStates.Contains(userID))
                    buddyStates.Remove(userID);
                buddyStates.Add(userID, bld);
            }

            lock (netStreams.SyncRoot)
                for (int i = 0; i < netStreams.Count; i++)
                    lock (((connection)netStreams[i]).watchingClass.BuddyListData.SyncRoot)
                        ((connection)netStreams[i]).watchingClass.BuddyListData.Add(bld);
        }