コード例 #1
0
 private bool PrivateStatefulFunctions(PrivateEndPoint endPoint, MessageSource source, string message)
 {
     lock (stateLock)
     {
         var state = states.GetValueOrDefault(source.FromQq, null);
         if (state != null)
         {
             (bool handled, IFunction newState) = state.ProcessMessage(endPoint, source, message);
             if (handled)
             {
                 //if (newState != null)
                 //    states.ReplaceOrInsert(source.FromQq, newState);
                 //else states.Delete(source.FromQq);
                 states.ReplaceOrDelete(source.FromQq, newState);
                 return(true);
             }
         }
         else
         {// state = null;
             bool      handled;
             IFunction newState;
             (handled, newState) = new AdminAddRemove().ProcessMessage(endPoint, source, message);
             if (handled)
             {
                 states.ReplaceOrDelete(source.FromQq, newState);
                 return(true);
             }
         }
         return(false);
     }
 }
コード例 #2
0
 public override int GetHashCode()
 {
     unchecked
     {
         return(((PrivateEndPoint != null ? PrivateEndPoint.GetHashCode() : 0) * 397)
                ^ (PublicEndPoint != null ? PublicEndPoint.GetHashCode() : 0));
     }
 }
コード例 #3
0
 public bool ProcessPrivateMessage(PrivateEndPoint endPoint, MessageSource source, string message)
 {
     return(PrivateManage(endPoint.UserId, message));
 }