//=============================================================================
//
// Copyright (c) 2016-2021 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
//=============================================================================
# ifndef _DL_SYSTEM_IUDL_HPP_
# define _DL_SYSTEM_IUDL_HPP_
# include "ZdlExportDefine.hpp"
namespace zdl {
namespace DlSystem {
/**
* NOTE : DEPRECATED , MAY BE REMOVED IN THE FUTURE .
*
* @ brief .
*
* Base class user concrete UDL implementation .
*
* All functions are marked as :
*
* - virtual
* - noexcept
*
* User should make sure no exceptions are propagated outside of
* their module . Errors can be communicated via return values .
*/
class ZDL_EXPORT IUDL {
public :
/**
* NOTE : DEPRECATED , MAY BE REMOVED IN THE FUTURE .
*
* @ brief .
*
* Destructor
*/
virtual ~ IUDL ( ) = default ;
/**
* NOTE : DEPRECATED , MAY BE REMOVED IN THE FUTURE .
*
* @ brief Sets up the user ' s environment .
* This is called by the SNPE framework to allow the user the
* opportunity to setup anything which is needed for running
* user defined layers .
*
* @ param cookie User provided opaque data returned by the SNPE
* runtime
*
* @ param insz How many elements in input size array
* @ param indim Pointer to a buffer that holds input dimension
* array
* @ param indimsz Input dimension size array of the buffer
* ' indim ' . Corresponds to indim
*
* @ param outsz How many elements in output size array
* @ param outdim Pointer to a buffer that holds output
* dimension array
* @ param outdimsz Output dimension size of the buffer ' oudim ' .
* Corresponds to indim
*
* @ return true on success , false otherwise
*/
virtual bool setup ( void * cookie ,
size_t insz , const size_t * * indim , const size_t * indimsz ,
size_t outsz , const size_t * * outdim , const size_t * outdimsz ) = 0 ;
/**
* NOTE : DEPRECATED , MAY BE REMOVED IN THE FUTURE .
*
* @ brief Close the instance . Invoked by the SNPE
* framework to allow the user the opportunity to release any resources
* allocated during setup .
*
* @ param cookie - User provided opaque data returned by the SNPE runtime
*/
virtual void close ( void * cookie ) noexcept = 0 ;
/**
* NOTE : DEPRECATED , MAY BE REMOVED IN THE FUTURE .
*
* @ brief Execute the user defined layer
*
* @ param cookie User provided opaque data returned by the SNPE
* runtime
*
* @ param input Const pointer to a float buffer that contains
* the input
*
* @ param output Float pointer to a buffer that would hold
* the user defined layer ' s output . This buffer
* is allocated and owned by SNPE runtime .
*/
virtual bool execute ( void * cookie , const float * * input , float * * output ) = 0 ;
} ;
} // ns DlSystem
} // ns zdl
# endif // _DL_SYSTEM_IUDL_HPP_