コード例 #1
0
ファイル: Task.cs プロジェクト: luxueqi/tb
        public Task(ListCallback lc, TxtCallback tc, Mode mode, int threadCount = 0)
        {
            ServicePointManager.DefaultConnectionLimit = 128;

            ServicePointManager.Expect100Continue = false;



            this.listCallback = lc;

            this.txtCallback = tc;

            this.manua = new ManualResetEvent(true);

            this.mode = mode;

            if (threadCount != 0)
            {
                this.itaskCount = threadCount;
                object1         = new object();
                object2         = new object();
                object3         = new object();
                boolstop        = false;
            }
        }
コード例 #2
0
        public D3Element Flattern(EntityNode root)
        {
            //var nodes = [], i = 0;
            Stack <EntityNode> nodes = new Stack <EntityNode>();
            int i = 0;
            ListCallback <EntityNode> recurse = null;

            recurse = delegate(EntityNode node, int index, IReadonlyCollection <EntityNode> list)
            {
                if (node.Children != null)
                {
                    node.Children.ForEach(recurse);
                }
                if (node.Id == null)
                {
                    i       = i + 1;
                    node.Id = i.ToString();
                }
                nodes.Push(node);
            };
            recurse(root, 0, null);
            return((D3Element)(object)nodes);
            //function recurse(node) {
            //  if (node.children) node.children.forEach(recurse);
            //  if (!node.id) node.id = ++i;
            //  nodes.push(node);
            //}

            //recurse(root);
            //return nodes;
        }
コード例 #3
0
 //通过委托进行监听的移除
 public void removeListener(ListCallback <T> listener)
 {
     for (int i = 0; i < mListenerList.Count; i++)
     {
         if ((mListenerList[i] as DataListListener <T>).ListenerFunc == listener)
         {
             mListenerList.RemoveAt(i);
             break;
         }
     }
 }
コード例 #4
0
    /// <summary>
    /// ランキングの一覧を取得する
    /// </summary>
    /// <param name="callback">コールバック関数</param>
    public void GetRankingList(ListCallback callback)
    {
        NCMBQuery <NCMBObject> query = GetQuery(NCMBUTRankingsDefaultSettings.RANKING_CLASS);

        query.WhereEqualTo(NCMBUTRankingsDefaultSettings.RankingsDefaultFields.stage.ToString(), Stage);
        query.Include(NCMBUTRankingsDefaultSettings.RankingsDefaultFields.player.ToString());
        query.FindAsync((List <NCMBObject> objList, NCMBException error) => {
            ClearValues();
            callback(objList, error);
            return;
        });
    }
コード例 #5
0
    /// <summary>
    /// 自分宛てにきているメッセージの一覧を取得する
    /// </summary>
    /// <param name="callback">コールバック関数</param>
    public void GetMessageList(ListCallback callback)
    {
        if (!GetIsLogIn)
        {
            callback(null, new NCMBException(NCMBUTErrorMessage.NOT_LOGIN_ERROR));
            return;
        }

        NCMBQuery <NCMBObject> messObj = GetQuery(NCMBUTMessagesDefaultSettings.MESSAGE_CLASS);

        messObj.WhereEqualTo(NCMBUTMessagesDefaultSettings.MessagesDefaultFields.to.ToString(), NCMBUser.CurrentUser);
        messObj.Include(NCMBUTMessagesDefaultSettings.MessagesDefaultFields.from.ToString());
        messObj.FindAsync((List <NCMBObject> objList, NCMBException error) => {
            callback(objList, error);
            return;
        });
    }
コード例 #6
0
    /// <summary>
    /// ユーザを検索する
    /// </summary>
    /// <param name="userName">検索する名前</param>
    /// <param name="callback">コールバック関数</param>
    public void GetSearchUserList(string userName, ListCallback callback)
    {
        if (!GetIsLogIn)
        {
            callback(null, new NCMBException(NCMBUTErrorMessage.NOT_LOGIN_ERROR));
            return;
        }

        if (userName == "")
        {
            callback(null, new NCMBException(NCMBUTErrorMessage.EMPTY_USER_NAME));
            return;
        }

        //find exist friends
        NCMBQuery <NCMBObject> friendsQuery = GetQuery(NCMBUTFriendsDefaultSettings.FRIEND_CLASS);

        friendsQuery.WhereEqualTo(NCMBUTFriendsDefaultSettings.FriendsDefaultFields.from.ToString(), NCMBUser.CurrentUser);
        friendsQuery.Include(NCMBUTFriendsDefaultSettings.FriendsDefaultFields.to.ToString());
        friendsQuery.FindAsync((List <NCMBObject> objList, NCMBException error) => {
            if (error != null)
            {
                callback(null, error);
                return;
            }

            List <NCMBObject> players = new List <NCMBObject>();
            players.Add(NCMBUser.CurrentUser as NCMBObject);
            foreach (NCMBObject friend in objList)
            {
                players.Add(friend["to"] as NCMBObject);
            }

            NCMBQuery <NCMBObject> query = GetQuery(NCMBUTPlayersDefaultSettings.PLAYERS_CLASS);
            query.WhereEqualTo("userName", userName);
            query.WhereNotContainedIn(NCMBUTPlayersDefaultSettings.PlayersDefaultFields.player.ToString(), players);
            query.Include(NCMBUTPlayersDefaultSettings.PlayersDefaultFields.player.ToString());
            query.FindAsync((List <NCMBObject> playerList, NCMBException findError) => {
                callback(playerList, findError);
                return;
            });
        });
    }
コード例 #7
0
ファイル: BaseServer.cs プロジェクト: conariumsoft/RunGun
        public void AddListener <T, U>(Protocol code, ListCallback <T, U> method)
            where T : IPacketHeader, new()
            where U : IDataSlice, new()
        {
            OnUserMessage += (sender, bytedata) => {
                if (bytedata[0] == (byte)code)
                {
                    int    headerSize = ClassSerializer.GetProfile(typeof(T)).BufferLength;
                    int    sliceSize  = ClassSerializer.GetProfile(typeof(U)).BufferLength;
                    int    numSlices  = (bytedata.Length - headerSize) / sliceSize;
                    byte[] headerData = new byte[headerSize];
                    Array.Copy(bytedata, 0, headerData, 0, headerSize);
                    T header;

                    try {
                        header = ByteUtil.Deserialize <T>(headerData);
                    } catch (Exception) {
                        return;
                    }

                    List <U> slices = new List <U>();

                    for (int i = 0; i < numSlices; i++)
                    {
                        byte[] sliceData = new byte[sliceSize];
                        Array.Copy(bytedata, headerSize + (sliceSize * i), sliceData, 0, sliceSize);

                        U slice;

                        try {
                            slice = ClassSerializer.Deserialize <U>(sliceData);
                        } catch (Exception) {
                            return;
                        }

                        slices.Add(slice);
                    }
                    method(sender, header, slices);
                }
            };
        }
コード例 #8
0
        public void AddListener <T, U>(Protocol code, ListCallback <T, U> method) where T : new() where U : new()
        {
            OnServerMessage += (bytedata) => {
                if (bytedata[0] == (byte)code)
                {
                    int    headerSize = ClassSerializer.GetProfile(typeof(T)).BufferLength;
                    int    sliceSize  = ClassSerializer.GetProfile(typeof(U)).BufferLength;
                    int    numSlices  = (bytedata.Length - headerSize) / sliceSize;
                    byte[] headerData = new byte[headerSize];
                    Array.Copy(bytedata, 0, headerData, 0, headerSize);
                    T        header = ClassSerializer.Deserialize <T>(headerData);
                    List <U> slices = new List <U>();

                    for (int i = 0; i < numSlices; i++)
                    {
                        byte[] sliceData = new byte[sliceSize];
                        Array.Copy(bytedata, headerSize + (sliceSize * i), sliceData, 0, sliceSize);
                        slices.Add(ClassSerializer.Deserialize <U>(sliceData));
                    }
                    method(header, slices);
                }
            };
        }
コード例 #9
0
 public void ForEach(ListCallback <T> callback)
 {
 }
コード例 #10
0
 public extern void ForEach(ListCallback <T> callback);
コード例 #11
0
 internal static extern ErrorCode GetList(string name, ListCallback list, IntPtr data);
コード例 #12
0
 internal static extern int ForeachList(IntPtr list, ListCallback cb, IntPtr userData);
コード例 #13
0
    //列表类型
    public void AddListListener <T>(ObservableListData <T> observableData, ListCallback <T> listener, DataListenerType listenerType, bool fullUpdateFirst = false)
    {
        DataListListener <T> DataListener = new DataListListener <T>(listener, listenerType, this, fullUpdateFirst);

        bindItemList.Add(new BindItem(observableData, DataListener));
    }
コード例 #14
0
 public DataListListener(ListCallback <T> listener, DataListenerType listenerType, object holder = null, bool fullupdateFirst = false) : base(listenerType, holder, fullupdateFirst)
 {
     ListenerFunc = listener;
 }
コード例 #15
0
 //添加普通列表监听
 public void AddListener(ListCallback <T> listener, DataListenerType listenerType, object holder = null, bool fullUpdate = false)
 {
     AddListener(new DataListListener <T>(listener, listenerType, holder, fullUpdate));
 }