#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "device/fido/cable/fido_ble_frames.h"
#include <algorithm>
#include <limits>
#include <tuple>
#include "base/check_op.h"
#include "base/notreached.h"
#include "base/numerics/safe_conversions.h"
#include "device/fido/fido_constants.h"
#include "device/fido/fido_parsing_utils.h"
namespace device {
FidoBleFrame::FidoBleFrame() = default;
FidoBleFrame::FidoBleFrame(FidoBleDeviceCommand command,
std::vector<uint8_t> data)
: … { … }
FidoBleFrame::FidoBleFrame(const FidoBleFrame&) = default;
FidoBleFrame& FidoBleFrame::operator=(const FidoBleFrame&) = default;
FidoBleFrame::FidoBleFrame(FidoBleFrame&&) = default;
FidoBleFrame& FidoBleFrame::operator=(FidoBleFrame&&) = default;
FidoBleFrame::~FidoBleFrame() = default;
bool FidoBleFrame::IsValid() const { … }
FidoBleFrame::KeepaliveCode FidoBleFrame::GetKeepaliveCode() const { … }
FidoBleFrame::ErrorCode FidoBleFrame::GetErrorCode() const { … }
std::pair<FidoBleFrameInitializationFragment,
base::queue<FidoBleFrameContinuationFragment>>
FidoBleFrame::ToFragments(size_t max_fragment_size) const { … }
bool operator==(const FidoBleFrame& lhs, const FidoBleFrame& rhs) { … }
FidoBleFrameFragment::FidoBleFrameFragment() = default;
FidoBleFrameFragment::FidoBleFrameFragment(const FidoBleFrameFragment& frame) =
default;
FidoBleFrameFragment::~FidoBleFrameFragment() = default;
FidoBleFrameFragment::FidoBleFrameFragment(base::span<const uint8_t> fragment)
: … { … }
bool FidoBleFrameInitializationFragment::Parse(
base::span<const uint8_t> data,
FidoBleFrameInitializationFragment* fragment) { … }
size_t FidoBleFrameInitializationFragment::Serialize(
std::vector<uint8_t>* buffer) const { … }
bool FidoBleFrameContinuationFragment::Parse(
base::span<const uint8_t> data,
FidoBleFrameContinuationFragment* fragment) { … }
size_t FidoBleFrameContinuationFragment::Serialize(
std::vector<uint8_t>* buffer) const { … }
FidoBleFrameAssembler::FidoBleFrameAssembler(
const FidoBleFrameInitializationFragment& fragment)
: … { … }
bool FidoBleFrameAssembler::AddFragment(
const FidoBleFrameContinuationFragment& fragment) { … }
bool FidoBleFrameAssembler::IsDone() const { … }
FidoBleFrame* FidoBleFrameAssembler::GetFrame() { … }
FidoBleFrameAssembler::~FidoBleFrameAssembler() = default;
}