reactivateBuffer static method

Uint8List reactivateBuffer(
  1. String? hardwareCode,
  2. String? productReference
)

Reactivates a license in a data buffer using the host hardware code and the product reference.

param hardwareCode The hardware code on which the license file will be attached, to be retrieved using the GetHostHardwareCode function. param productReference The product reference. return The new license data buffer. throws BiosealException An error has occurred during Bioseal Library execution.

Implementation

static Uint8List reactivateBuffer(String? hardwareCode, String? productReference) {
  Pointer<Char>? pHardwareCode = hardwareCode?.toNativeUtf8().cast<Char>();
  Pointer<Char>? pProductReference = productReference?.toNativeUtf8().cast<Char>();
  Pointer<UnsignedChar> pLicenseFileBuffer = calloc.allocate(2048);
  Pointer<Int> pLicenseFileBufferSize = calloc.allocate(1);
  pLicenseFileBufferSize[0] = 2048;
  try {
    var err = biosealSDK.id3BiosealLicense_ReactivateBuffer(pHardwareCode ?? nullptr, pProductReference ?? nullptr, pLicenseFileBuffer, pLicenseFileBufferSize);
    if (err == BiosealError.insufficientBuffer.value) {
      calloc.free(pLicenseFileBuffer);
      pLicenseFileBuffer = calloc.allocate(pLicenseFileBufferSize.value);
      err = biosealSDK.id3BiosealLicense_ReactivateBuffer(pHardwareCode ?? nullptr, pProductReference ?? nullptr, pLicenseFileBuffer, pLicenseFileBufferSize);
    }
    if (err != BiosealError.success.value) {
      throw BiosealException(err);
    }
    final vLicenseFileBuffer = Uint8List.fromList(pLicenseFileBuffer.cast<Uint8>().asTypedList(pLicenseFileBufferSize.value));
    return vLicenseFileBuffer;
  } finally {
    if (pHardwareCode != null) {
      calloc.free(pHardwareCode);
    }
    if (pProductReference != null) {
      calloc.free(pProductReference);
    }
    calloc.free(pLicenseFileBuffer);
    calloc.free(pLicenseFileBufferSize);
  }
}