bool SyncEchoClient::sendAndRecv(const std::string& message) throw (mxcore::IOException&) { MX_ASSERT(!message.empty()); std::string recvMsg; socket_.writeN(message.c_str(), message.size()); bool ret = readN(socket_, recvMsg, (int) message.size()); return ret && (message == recvMsg); }
void SoundFile::jumpToChunk(int chunk) { //if(chunk == currentChunk()) return; int c; lock(); int pos = chunk * framesPerChunk() - offset(); if(pos < 0) { stream->jump_to_frame(0); if(equalLoudness()) filteredStream->jump_to_frame(0); for(c=0; c<numChannels(); c++) channels(c)->reset(); //readN(stream, bufferSize() + pos); readN(bufferSize() + pos); } else { stream->jump_to_frame(pos); if(equalLoudness()) filteredStream->jump_to_frame(pos); //readN(stream, bufferSize()); readN(bufferSize()); } /* int n = bufferSize() / framesPerChunk(); if(chunk+offset() < n) { stream->jump_to_frame(0); for(c=0; c<numChannels(); c++) channels(c)->reset(); if(chunk+offset() >= 0) { for(int j=0; j<chunk+offset(); j++) readChunk(); } } else { //if(chunk == currentChunk()+1) { readChunk(); return; } stream->jump_to_frame((chunk+offset()-n) * framesPerChunk()); for(int j=0; j<n; j++) readChunk(); } */ setCurrentChunk(chunk); //for(c=0; c<numChannels(); c++) { // if(channels(c) == gdata->getActiveChannel()) channels(c)->processChunk(currentChunk()); //} unlock(); }
RunLengthBitVectorStream(std::istream & rin, uint64_t const rbaseoffset = 0) : in(rin), blocksize(readBlockSize(in)), n(readN(in)), indexpos(readIndexPos(in)), blocks(readBlocks(in,indexpos)), pointerarrayoffset(indexpos + 1*sizeof(uint64_t)), baseoffset(rbaseoffset), rankaccbits(libmaus::rank::RunLengthBitVectorBase::getRankAccBits()) { #if 0 std::cerr << "indexpos=" << indexpos << std::endl; std::cerr << "blocksize=" << blocksize << std::endl; std::cerr << "blocks=" << blocks << std::endl; std::cerr << "n=" << n << std::endl; #endif }