示例#1
0
		private void InternalFireEvents86(Native.Poll.zmq_pollitem_t_x86[] items)
		{
			bool hasRcv;
			bool hasSend;

			// for (int i = 0; i < items.Length; i++)
			foreach (var pollitem in items)
			{
				if (pollitem.revents != 0)
				{
					hasRcv = ((pollitem.revents & Native.Poll.POLLIN) != 0);
					hasSend = ((pollitem.revents & Native.Poll.POLLOUT) != 0);

					if (hasRcv || hasSend)
					{
						// get our socket given the pointer
						Socket socket;
						if (_ptr2Socket.TryGetValue(pollitem.socket, out socket))
						{
							// fire the events
							if (hasRcv)
							{
								var ev = this.RecvReady;
								if (ev != null) ev(socket);
							}
							if (hasSend)
							{
								var ev = this.SendReady;
								if (ev != null) ev(socket);
							}
						}
					}
				}
			}
		}