blob: 01eab6fc7e19ef86f94b0ceb22ad3dd83e265076 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef GARNET_DRIVERS_BLUETOOTH_LIB_SDP_STATUS_H_
#define GARNET_DRIVERS_BLUETOOTH_LIB_SDP_STATUS_H_
#include "garnet/drivers/bluetooth/lib/common/status.h"
#include "garnet/drivers/bluetooth/lib/sdp/sdp.h"
// This file provides a common::Status template specialization for sdp::Status
//
// EXAMPLES:
//
// // 1. Status containing success:
// sdp::Status status;
//
// // 2. Status containing a host-internal error:
// sdp::Status status(common::HostError::kTimedOut);
//
// // 3. Status containing SDP status code:
// sdp::Status status(sdp::ErrorCode::kInvalidSize);
namespace btlib {
namespace common {
template <>
struct ProtocolErrorTraits<btlib::sdp::ErrorCode> {
static std::string ToString(btlib::sdp::ErrorCode ecode);
};
} // namespace common
namespace sdp {
std::string ErrorCodeToString(ErrorCode code);
class Status : public common::Status<ErrorCode> {
public:
explicit Status(common::HostError ecode = common::HostError::kNoError);
explicit Status(sdp::ErrorCode proto_code);
};
} // namespace sdp
} // namespace btlib
#endif // GARNET_DRIVERS_BLUETOOTH_LIB_SDP_STATUS_H_