blob: 8ac6c2fc0c2a248ea07ae666a01f99b5b13cf5f6 [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.
#include "usb-handler.h"
namespace xdc {
// static
std::unique_ptr<UsbHandler::Transfer> UsbHandler::Transfer::Create() {
auto transfer = std::make_unique<UsbHandler::Transfer>(ConstructorTag{});
// TODO(jocelyndang): need to initialize the transfer.
return transfer;
}
zx_status_t UsbHandler::Transfer::FillHeader(uint32_t stream_id, size_t data_len) {
// TODO(jocelyndang): implement this.
return ZX_ERR_NOT_SUPPORTED;
}
zx_status_t UsbHandler::Transfer::FillData(uint32_t stream_id, unsigned char* data,
size_t data_len) {
// TODO(jocelyndang): implement this.
return ZX_ERR_NOT_SUPPORTED;
}
bool UsbHandler::Transfer::SetOffset(int offset) {
if (offset < 0 || offset > actual_length_) {
return false;
}
offset_ = offset;
return true;
}
// static
std::unique_ptr<UsbHandler> UsbHandler::Create() {
auto usb_handler = std::make_unique<UsbHandler>(ConstructorTag{});
if (!usb_handler) {
return nullptr;
}
// TODO(jocelyndang): need to initialize initial libusb fds.
return usb_handler;
}
bool UsbHandler::HandleEvents(std::vector<std::unique_ptr<Transfer>>& completed_reads) {
// TODO(jocelyndang): implement this.
return false;
}
void UsbHandler::RequeueRead(std::unique_ptr<Transfer> transfer) {
// TODO(jocelyndang): implement this.
}
void UsbHandler::GetFdUpdates(std::map<int, short>& added_fds, std::set<int>& removed_fds) {
// TODO(jocelyndang): implement this.
}
std::unique_ptr<UsbHandler::Transfer> UsbHandler::GetWriteTransfer() {
// TODO(jocelyndang): implement this.
return nullptr;
}
void UsbHandler::ReturnWriteTransfer(std::unique_ptr<Transfer>) {
// TODO(jocelyndang): implement this.
}
std::unique_ptr<UsbHandler::Transfer> UsbHandler::QueueWriteTransfer(
std::unique_ptr<Transfer> transfer) {
// TODO(jocelyndang): implement this.
return transfer;
}
} // namespace xdc