blob: fe448445cc12108fd7a02ed4a4b5092f580111d1 [file] [log] [blame]
// Copyright 2022 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
package dev.pigweed.pw_transfer;
import dev.pigweed.pw_rpc.Status;
import java.util.Locale;
/** Represents errors that terminate a transfer. */
public class TransferError extends Exception {
private final Status error;
TransferError(String message, Throwable cause) {
super(message, cause);
error = Status.UNKNOWN;
}
TransferError(int id, Status error) {
this(String.format(Locale.ENGLISH, "Transfer %d failed with status %s", id, error.name()),
error);
}
TransferError(String msg, Status error) {
super(msg);
this.error = error;
}
/**
* Returns the pw_transfer error code that terminated this transfer.
*
* <p>UNKNOWN indicates that the transfer was terminated by an exception.
*/
public Status status() {
return error;
}
}