fileUntil::AppendFile::AppendFile(StringArg filename) : fp_(::fopen(filename.c_str(), "a+")), writtenBytes_(0) { assert(fp_); ::setbuffer(fp_, buffer_, sizeof buffer_); }
fileUntil::ReadSmallFile::ReadSmallFile(StringArg filename) : fd_(::open(filename.c_str(), O_RDONLY | O_CLOEXEC)), err_(0) { buf_[0] = '\0'; if (fd_ < 0) err_ = errno; }
bool Resolver::resolve(StringArg hostname, const Callback& cb){ loop_->assertInLoopThread(); QueryData* queryData = new QueryData(this, cb); ares_gethostbyname(ctx_, hostname.c_str(), AF_INET, &Resolver::ares_host_callback, queryData); struct timeval tv; struct timeval* tvp = ares_timeout(ctx_, NULL, &tv); double timeout = getSeconds(tvp); LOG_DEBUG << "timeout " << timeout << " active" << timerActive_; if(!timerActive_){ loop_->runAfter(timeout, boost::bind(&Resolver::onTimer, this)); timerActive_ = true; } return queryData != NULL; }
void Request::setRange(const StringArg range){ setopt(CURLOPT_RANGE, range.c_str()); }
RequestPtr Curl::getUrl(StringArg url){ RequestPtr req(new Request(this, url.c_str())); return req; }