DiCE API nvidia_logo_transpbg.gif Up
idistcache.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IDISTCACHE_H
8#define MI_NEURAYLIB_IDISTCACHE_H
9
11
12namespace mi {
13
14namespace neuraylib {
15
16class IDeserializer;
17class ISerializable;
18
29 public base::Interface_declare<0x61820375,0xbc2e,0x423a,0x9f,0x12,0x4b,0xff,0xb2,0x25,0xea,0x0d>
30{
31public:
48 virtual Uint64 create_object( base::Uuid class_id, IDeserializer* deserializer) = 0;
49
59 virtual void destroy_object( Uint64 id, bool owner_died) = 0;
60};
61
71 public base::Interface_declare<0x29582fa9,0xb13e,0x4a48,0xa2,0x2d,0xfd,0x22,0x33,0x70,0x40,0x88>
72{
73public:
84 virtual void register_receiver( base::Uuid class_id, IObject_receiver* receiver) = 0;
85
94 virtual void unregister_receiver( base::Uuid class_id) = 0;
95
110 virtual Sint32 store_object( ISerializable* serializable, bool cluster_only = true) = 0;
111
118 virtual void remove_object( ISerializable* serializable) = 0;
119};
120 // end group mi_neuray_dice
122
123} // namespace neuraylib
124
125} // namespace mi
126
127#endif // MI_NEURAYLIB_IDISTCACHE_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Source for deserializing objects from byte streams.
Definition: ideserializer.h:35
The distributed cache service can be used to create temporary objects in a cluster.
Definition: idistcache.h:72
virtual Sint32 store_object(ISerializable *serializable, bool cluster_only=true)=0
Stores an object in the distributed cache.
virtual void unregister_receiver(base::Uuid class_id)=0
Unregisters a receiver with the distributed cache.
virtual void register_receiver(base::Uuid class_id, IObject_receiver *receiver)=0
Registers a receiver with the distributed cache.
virtual void remove_object(ISerializable *serializable)=0
Removes an object from the cache.
The object receiver is responsible for creation and destruction of objects on the remote host.
Definition: idistcache.h:30
virtual void destroy_object(Uint64 id, bool owner_died)=0
Callback for object destruction.
virtual Uint64 create_object(base::Uuid class_id, IDeserializer *deserializer)=0
Callback for object creation.
All serializable objects have to be derived from this interface.
Definition: iserializer.h:137
unsigned long long Uint64
64-bit unsigned integer.
Definition: types.h:62
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: dice.h:89
A 128 bit representation of a universally unique identifier (UUID or GUID).
Definition: uuid.h:26