printTicket method

Future<NetworkPrintResult> printTicket(
  1. List<int> data, {
  2. bool isDisconnect = true,
})

Print data with automatic connection management

Implementation

Future<NetworkPrintResult> printTicket(
  List<int> data, {
  bool isDisconnect = true,
}) async {
  try {
    if (!_isConnected || _socket == null) {
      final connectResult = await connect();
      if (connectResult != NetworkPrintResult.success) {
        return connectResult;
      }
    }

    _socket!.add(data);
    await _socket!.flush();

    if (isDisconnect) {
      await disconnect();
    }

    return NetworkPrintResult.success;
  } on SocketException {
    _isConnected = false;
    return NetworkPrintResult.timeout;
  } catch (e) {
    return NetworkPrintResult.timeout;
  }
}