nndeploy C++ API  0.2.0
nndeploy C++ API
Public Member Functions | Protected Attributes | List of all members
nndeploy::device::Event Class Reference

事件类 More...

#include <device.h>

Inheritance diagram for nndeploy::device::Event:
[legend]
Collaboration diagram for nndeploy::device::Event:
[legend]

Public Member Functions

template<typename T >
T * as ()
 类型转换模板函数 More...
 
 Event (Device *device)
 构造函数 More...
 
virtual DevicegetDevice () const
 获取关联设备 More...
 
virtual base::DeviceType getDeviceType () const
 获取设备类型 More...
 
virtual void * getNativeEvent ()
 获取原生事件对象 More...
 
virtual bool queryDone ()
 查询事件是否已完成 More...
 
virtual base::Status synchronize ()
 同步等待事件完成 More...
 
virtual ~Event ()
 析构函数 More...
 
- Public Member Functions inherited from nndeploy::base::NonCopyable
 NonCopyable ()=default
 
 NonCopyable (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
NonCopyableoperator= (NonCopyable &&)=delete
 

Protected Attributes

Devicedevice_
 关联的设备 More...
 

Detailed Description

事件类

用于流之间的同步和异步操作的完成状态查询

Definition at line 513 of file device.h.

Constructor & Destructor Documentation

◆ Event()

nndeploy::device::Event::Event ( Device device)

构造函数

Parameters
device关联的设备

◆ ~Event()

virtual nndeploy::device::Event::~Event ( )
virtual

析构函数

Member Function Documentation

◆ as()

template<typename T >
T* nndeploy::device::Event::as ( )
inline

类型转换模板函数

Template Parameters
T目标类型
Returns
T* 转换后的指针

Definition at line 592 of file device.h.

◆ getDevice()

virtual Device* nndeploy::device::Event::getDevice ( ) const
virtual

获取关联设备

Returns
Device* 设备指针

◆ getDeviceType()

virtual base::DeviceType nndeploy::device::Event::getDeviceType ( ) const
virtual

获取设备类型

Returns
base::DeviceType 设备类型

◆ getNativeEvent()

virtual void* nndeploy::device::Event::getNativeEvent ( )
virtual

获取原生事件对象

Returns
void* 原生事件指针

◆ queryDone()

virtual bool nndeploy::device::Event::queryDone ( )
virtual

查询事件是否已完成

非阻塞地检查事件是否已经完成执行。这个方法允许应用程序在不阻塞当前线程的情况下 检查事件状态。

示例:

Event *event = device->createEvent();
stream->recordEvent(event);
// 稍后检查事件是否完成
if (event->queryDone()) {
// 事件已完成,可以安全地访问相关资源
}
Event(Device *device)
构造函数
Returns
bool 如果事件已完成返回true,否则返回false

◆ synchronize()

virtual base::Status nndeploy::device::Event::synchronize ( )
virtual

同步等待事件完成

阻塞当前线程直到事件完成。这个方法用于确保在继续执行之前, 与事件相关的所有操作都已完成。

示例:

Event *event = device->createEvent();
stream->recordEvent(event);
// 等待事件完成
event->synchronize();
// 此时可以安全地访问相关资源
Returns
base::Status 操作状态,成功返回kStatusCodeOk

Member Data Documentation

◆ device_

Device* nndeploy::device::Event::device_
protected

关联的设备

Definition at line 597 of file device.h.


The documentation for this class was generated from the following file: