neuralnetworks: fix out ParcelFileDescriptor

Refactored "out @nullable ParacelFileDescriptor" into
FencedExecutionResult. It works well with NDK backend, but not with Java
backend. To avoid future incompatibility, AIDL compiler will forbid "out
ParcelFileDescriptor".

This change moves the out parameter to its own parcelable type,
FencedExecutionResult, along with IFencedExecutionCallback.

Bug: 181194872
Test: atest --test-mapping packages/modules/NeuralNetworks
Change-Id: I8e628a7b96d81338fbe59ce8c0b849f98c00536c
diff --git a/neuralnetworks/aidl/vts/functional/ValidateRequest.cpp b/neuralnetworks/aidl/vts/functional/ValidateRequest.cpp
index db8f429..3be4c1b 100644
--- a/neuralnetworks/aidl/vts/functional/ValidateRequest.cpp
+++ b/neuralnetworks/aidl/vts/functional/ValidateRequest.cpp
@@ -68,11 +68,10 @@
     // fenced
     {
         SCOPED_TRACE(message + " [executeFenced]");
-        ndk::ScopedFileDescriptor syncFence;
-        std::shared_ptr<IFencedExecutionCallback> callback;
+        FencedExecutionResult executionResult;
         const auto executeStatus = preparedModel->executeFenced(request, {}, false, kNoDeadline,
                                                                 kOmittedTimeoutDuration,
-                                                                kNoDuration, &syncFence, &callback);
+                                                                kNoDuration, &executionResult);
         ASSERT_FALSE(executeStatus.isOk());
         ASSERT_EQ(executeStatus.getExceptionCode(), EX_SERVICE_SPECIFIC);
         ASSERT_EQ(static_cast<ErrorStatus>(executeStatus.getServiceSpecificError()),