예제 #1
0
int
select(const SelectTypeArray& selarray, UInt32 ms)
{
	SelectObjectArray soa;
	soa.reserve(selarray.size());
	for (size_t i = 0; i < selarray.size(); ++i)
	{
		SelectObject curObj(selarray[i]);
		curObj.waitForRead = true;
		soa.push_back(curObj);
	}
	int rv = selectRW(soa, ms);
	if (rv < 0)
	{
		return rv;
	}

	// find the first selected object
	for (size_t i = 0; i < soa.size(); ++i)
	{
		if (soa[i].readAvailable)
		{
			return i;
		}
	}
	return SELECT_ERROR;
}
예제 #2
0
void ChanneledJsonDecompressor::readArray(int64_t length,
                                          dynamic* outArrayObj) {
  *outArrayObj = {};
  for (int64_t i = 0; i < length; ++i) {
    dynamic curObj(nullptr);
    read(&curObj);
    outArrayObj->push_back(curObj);
  }

}