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; } }
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; }
//通过委托进行监听的移除 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; } } }
/// <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; }); }
/// <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; }); }
/// <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; }); }); }
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); } }; }
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); } }; }
public void ForEach(ListCallback <T> callback) { }
public extern void ForEach(ListCallback <T> callback);
internal static extern ErrorCode GetList(string name, ListCallback list, IntPtr data);
internal static extern int ForeachList(IntPtr list, ListCallback cb, IntPtr userData);
//列表类型 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)); }
public DataListListener(ListCallback <T> listener, DataListenerType listenerType, object holder = null, bool fullupdateFirst = false) : base(listenerType, holder, fullupdateFirst) { ListenerFunc = listener; }
//添加普通列表监听 public void AddListener(ListCallback <T> listener, DataListenerType listenerType, object holder = null, bool fullUpdate = false) { AddListener(new DataListListener <T>(listener, listenerType, holder, fullUpdate)); }