33# pragma warning( disable : 4275 )
34# pragma warning( disable : 4702)
101 Type getType()
const;
141 virtual agx::SyncTag *
sendData(
const void *hostBuffer,
agxData::Buffer *Buffer,
size_t offset,
size_t size,
bool blocking) = 0;
185 virtual Status
wait()
override {
return SYNC_TAG_COMPLETED; }
186 virtual Status
getStatus()
override {
return SYNC_TAG_COMPLETED; }
192 using Device::createBuffer;
196 const void *hostBuffer,
agxData::Buffer* buffer,
size_t offset,
size_t size,
bool blocking)
override;
199 void *hostBuffer,
agxData::Buffer* buffer,
size_t offset,
size_t size,
bool blocking)
override;
205 void wait(
bool passive =
false);
214 SyncTagRef m_dummyTag;
#define AGX_DECLARE_POINTER_TYPES(type)
Abstract representation of a data buffer.
A component is an object containing other objects, enabling hierarchical structuring.
virtual Status getStatus() override
virtual Status wait() override
Representation of the CPU.
void wait(bool passive=false)
virtual agxData::Buffer * createBuffer(agxData::Format *format) override
static CpuDevice * instance()
virtual agx::SyncTag * receiveData(void *hostBuffer, agxData::Buffer *buffer, size_t offset, size_t size, bool blocking) override
Receive data from a buffer on the device.
virtual agx::SyncTag * sendData(const void *hostBuffer, agxData::Buffer *buffer, size_t offset, size_t size, bool blocking) override
Send data to a buffer on the device.
A device group contain other devices, enables hierarchical device structuring.
Device * getPrimaryDevice()
DeviceGroup(const Name &name, Device *primaryDevice)
Device * getOrCreateDevice(Type deviceType)
virtual agx::SyncTag * sendData(const void *, agxData::Buffer *, size_t, size_t, bool) override
Send data to a buffer on the device.
virtual agxData::Buffer * createBuffer(agxData::Format *) override
void setPrimaryDevice(Device *device)
virtual agx::SyncTag * receiveData(void *, agxData::Buffer *, size_t, size_t, bool) override
Receive data from a buffer on the device.
An agx::Device is an abstract representation of a device on which data can be stored and processed.
static Device * load(TiXmlElement *eDevice, Device *device)
virtual agxData::Buffer * createBuffer(agxData::Format *format)=0
virtual agx::SyncTag * receiveData(void *hostBuffer, agxData::Buffer *Buffer, size_t offset, size_t size, bool blocking)=0
Receive data from a buffer on the device.
virtual void destroyCallback(agx::Object *object) override
agxData::Buffer * getBuffer(agxData::Buffer *buffer)
void setTypeFormat(const agx::String &typeName, const agx::String &formatName)
Type
Explicit list of device types.
ByteOrder
Device dependent byte order, AGX prefix to avoid clash with macro definitions.
static agx::Model * ClassModel()
void setByteOrder(ByteOrder byteOrder)
const agx::String & getTypeName() const
agxData::Buffer * createBuffer(agxData::Type *type)
agxData::Format * getTypeFormat(agxData::Type *type)
void setTypeFormat(agxData::Type *type, agxData::Format *format)
Set the type format for a specific type.
virtual agx::SyncTag * sendData(const void *hostBuffer, agxData::Buffer *Buffer, size_t offset, size_t size, bool blocking)=0
Send data to a buffer on the device.
ByteOrder getByteOrder() const
Device(const agx::Name &name, Type type, const agx::String &typeName, ByteOrder byteOrder=UNDEFINED)
Constructor.
Inheritance with partial specialization due to bug with ref_ptr containers.
A model is an abstract representation of the class of an agx::Object.
Representation of a name string.
agx::Object is a refcounted object with a name.
A representation of a generic task.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.