Example #1
0
uint64_t umbrellaDetermineReqId(const uint8_t* header, size_t nheader) {
  uint64_t id;
  if (!umbrellaGetTagValue(header, nheader, msg_reqid, id)) {
    throw std::runtime_error("missing reqid");
  }
  if (id == 0) {
    throw std::runtime_error("invalid reqid");
  }
  return id;
}
Example #2
0
mc_op_t umbrellaDetermineOperation(const uint8_t* header, size_t nheader) {
  uint64_t op;
  if (!umbrellaGetTagValue(header, nheader, msg_op, op)) {
    throw std::runtime_error("missing op");
  }
  if (op >= UM_NOPS) {
    throw std::runtime_error("invalid operation");
  }
  return static_cast<mc_op_t>(detail::kUmbrellaOpToMc[op]);
}
Example #3
0
mc_op_t umbrellaDetermineOperation(
    const uint8_t* header,
    size_t nheader) noexcept {
  uint64_t op;
  if (!umbrellaGetTagValue(header, nheader, msg_op, op)) {
    LOG(ERROR) << "Operation is missing in umbrella header. "
               << "Header size: " << nheader << ". Header: "
               << folly::StringPiece(reinterpret_cast<const char*>(header),
                                     nheader);
    return mc_op_unknown;
  }

  if (op >= UM_NOPS) {
    LOG(ERROR) << "Invalid operation read from umbrella header. "
               << "Op: " << op << ". Header size: " << nheader << ". Header: "
               << folly::StringPiece(reinterpret_cast<const char*>(header),
                                     nheader);
    return mc_op_unknown;
  }
  return static_cast<mc_op_t>(detail::kUmbrellaOpToMc[op]);
}
Example #4
0
bool umbrellaIsReply(const uint8_t* header, size_t nheader) {
  uint64_t res;
  return umbrellaGetTagValue(header, nheader, msg_result, res);
}