예제 #1
0
McServerTransaction::McServerTransaction(
    std::shared_ptr<McServerSession> session,
    McRequest&& request,
    mc_op_t operation,
    uint64_t reqid,
    bool isMultiget,
    bool isSubRequest,
    bool noreply)
    : session_(std::move(session)),
      request_(std::move(request)),
      operation_(operation),
      reqid_(reqid),
      appContext_(*this),
      noReply_(noreply || (operation == mc_op_quit)),
      isMultiget_(isMultiget),
      isSubRequest_(isSubRequest) {

    mc_msg_init_not_refcounted(&replyMsg_);

    um_backing_msg_init(&umMsg_);
    mc_ascii_response_buf_init(&asciiResponse_);

    assert(!(isMultiget_ && isSubRequest));
    session_->onTransactionStarted(isSubRequest_);
}
예제 #2
0
void WriteBuffer::clear() {
  ctx_.clear();
  reply_.clear();
  um_backing_msg_cleanup(&umMsg_);
  um_backing_msg_init(&umMsg_);
  mc_ascii_response_buf_cleanup(&asciiResponse_);
  mc_ascii_response_buf_init(&asciiResponse_);
}
예제 #3
0
void AsciiSerializedReply::clear() {
  mc_ascii_response_buf_cleanup(&asciiResponse_);
  mc_ascii_response_buf_init(&asciiResponse_);
}
예제 #4
0
AsciiSerializedReply::AsciiSerializedReply() {
  mc_ascii_response_buf_init(&asciiResponse_);
}
예제 #5
0
WriteBuffer::WriteBuffer() {
  mc_msg_init_not_refcounted(&replyMsg_);
  um_backing_msg_init(&umMsg_);
  mc_ascii_response_buf_init(&asciiResponse_);
}