You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							2.6 KiB
						
					
					
				| //=============================================================================
 | |
| //
 | |
| //  Copyright (c) 2017 Qualcomm Technologies, Inc.
 | |
| //  All Rights Reserved.
 | |
| //  Confidential and Proprietary - Qualcomm Technologies, Inc.
 | |
| //
 | |
| //=============================================================================
 | |
| 
 | |
| #ifndef _IUSERBUFFER_FACTORY_HPP
 | |
| #define _IUSERBUFFER_FACTORY_HPP
 | |
| 
 | |
| #include "IUserBuffer.hpp"
 | |
| #include "TensorShape.hpp"
 | |
| #include "ZdlExportDefine.hpp"
 | |
| #include "DlEnums.hpp"
 | |
| namespace zdl {
 | |
|     namespace DlSystem {
 | |
|         class IUserBuffer;
 | |
| 
 | |
|         class TensorShape;
 | |
|     }
 | |
| }
 | |
| 
 | |
| namespace zdl {
 | |
| namespace DlSystem {
 | |
| 
 | |
| /** @addtogroup c_plus_plus_apis C++
 | |
| @{ */
 | |
| 
 | |
| /**
 | |
| * Factory interface class to create IUserBuffer objects.
 | |
| */
 | |
| class ZDL_EXPORT IUserBufferFactory {
 | |
| public:
 | |
|     virtual ~IUserBufferFactory() = default;
 | |
| 
 | |
|     /**
 | |
|      * @brief Creates a UserBuffer
 | |
|      *
 | |
|      * @param[in] buffer Pointer to the buffer that the caller supplies
 | |
|      *
 | |
|      * @param[in] bufSize Buffer size, in bytes
 | |
|      *
 | |
|      * @param[in] strides Total number of bytes between elements in each dimension.
 | |
|      *          E.g. A tightly packed tensor of floats with dimensions [4, 3, 2] would have strides of [24, 8, 4].
 | |
|      *
 | |
|      * @param[in] userBufferEncoding Reference to an UserBufferEncoding object
 | |
|      *
 | |
|      * @note Caller has to ensure that memory pointed to by buffer stays accessible
 | |
|      *       for the lifetime of the object created
 | |
|      */
 | |
|     virtual std::unique_ptr<IUserBuffer>
 | |
|     createUserBuffer(void *buffer, size_t bufSize, const zdl::DlSystem::TensorShape &strides, zdl::DlSystem::UserBufferEncoding* userBufferEncoding) noexcept = 0;
 | |
| 
 | |
|     /**
 | |
|      * @brief Creates a UserBuffer
 | |
|      *
 | |
|      * @param[in] buffer Pointer to the buffer that the caller supplies
 | |
|      *
 | |
|      * @param[in] bufSize Buffer size, in bytes
 | |
|      *
 | |
|      * @param[in] strides Total number of bytes between elements in each dimension.
 | |
|      *          E.g. A tightly packed tensor of floats with dimensions [4, 3, 2] would have strides of [24, 8, 4].
 | |
|      *
 | |
|      * @param[in] userBufferEncoding Reference to an UserBufferEncoding object
 | |
|      *
 | |
|      * @param[in] userBufferSource Reference to an UserBufferSource object
 | |
|      *
 | |
|      * @note Caller has to ensure that memory pointed to by buffer stays accessible
 | |
|      *       for the lifetime of the object created
 | |
|      */
 | |
|     virtual std::unique_ptr<IUserBuffer>
 | |
|     createUserBuffer(void *buffer, size_t bufSize, const zdl::DlSystem::TensorShape &strides, zdl::DlSystem::UserBufferEncoding* userBufferEncoding, zdl::DlSystem::UserBufferSource* userBufferSource) noexcept = 0;
 | |
| };
 | |
| /** @} */ /* end_addtogroup c_plus_plus_apis C++ */
 | |
| 
 | |
| }
 | |
| }
 | |
| 
 | |
| 
 | |
| #endif
 | |
| 
 |