omni::experimental::job::IAffinityMask_abi
Defined in omni/experimental/job/IJob.h
- 
class IAffinityMask_abi : public omni::core::Inherits<omni::core::IObject, std::integral_constant<uint64_t, carb::fnv1aHash("omni.experimental.job.IAffinityMask")>::value>
- Interface for providing a CPU affinity mask to the plugin. - Instances of this interface can be thought of as an array of - MaskTypevalues, which allows for setting affinities on machines with more than 64 processors. Each affinity mask this object contains is a bitmask that represents the associated CPUs.- On Linux, this object is treated as one large bitset analogous to cpu_set_t. So - get_affinity_mask(0)represents CPUs 0-63,- get_affinity_mask(1)represents CPUs 64-127, etc.- On Windows, each affinity mask in this object applies to its own Processor Group, so - get_affinity_mask(0)is for Processor Group 0,- get_affinity_mask(1)for Processor Group 1, etc.- Subclassed by omni::core::Generated< omni::experimental::job::IAffinityMask_abi > - Public Functions - 
inline void *cast(omni::core::TypeId id) noexcept
- Returns a pointer to the interface defined by the given type id if this object implements the type id’s interface. - Objects can support multiple interfaces, even interfaces that are in different inheritance chains. - The returned object will have omni::core::IObject::acquire() called on it before it is returned, meaning it is up to the caller to call omni::core::IObject::release() on the returned pointer. - The returned pointer can be safely - reinterpret_cast<>to the type id’s C++ class. For example, “omni.windowing.IWindow” can be cast to- omni::windowing::IWindow.- Do not directly use this method, rather use a wrapper function like omni::core::cast() or omni::core::ObjectPtr::as(). - Thread Safety
- This method is thread safe. 
 
 - 
inline void acquire() noexcept
- Increments the object’s reference count. - Objects may have multiple reference counts (e.g. one per interface implemented). As such, it is important that you call omni::core::IObject::release() on the same pointer from which you called omni::core::IObject::acquire(). - Do not directly use this method, rather use omni::core::ObjectPtr, which will manage calling omni::core::IObject::acquire() and omni::core::IObject::release() for you. - Thread Safety
- This method is thread safe. 
 
 - 
inline void release() noexcept
- Decrements the objects reference count. - Most implementations will destroy the object if the reference count reaches 0 (though this is not a requirement). - Objects may have multiple reference counts (e.g. one per interface implemented). As such, it is important that you call omni::core::IObject::release() on the same pointer from which you called omni::core::IObject::acquire(). - Do not directly use this method, rather use omni::core::ObjectPtr, which will manage calling omni::core::IObject::acquire() and omni::core::IObject::release() for you. - Thread Safety
- This method is thread safe. 
 
 - Protected Functions - 
virtual MaskType get_affinity_mask_abi(size_t index) noexcept = 0
- Gets the affinity mask at - index.- Note - indexmust be less than get_mask_count_abi()- Parameters
- index – Index to get affinity mask for. 
- Returns
- The affinity mask at the provided index. 
 
 - 
virtual void set_affinity_mask_abi(size_t index, MaskType mask) noexcept = 0
- Gets the affinity - maskat- index.- Note - indexmust be less than get_mask_count_abi()- Parameters
- index – Index to set affinity mask for. 
- mask – Mask to set. 
 
 
 - 
virtual size_t get_mask_count_abi() noexcept = 0
- Gets the current number of affinity masks stored by this object. - Returns
- The current number of affinity masks stored by this object. 
 
 - 
virtual size_t get_default_mask_count_abi() noexcept = 0
- Gets the default number of affinity masks stored by this object. - Returns
- The default number of affinity masks stored by this object. 
 
 - 
virtual void set_mask_count_abi(size_t count) noexcept = 0
- Sets the number of affinity masks stored by this object to - count.- If - countis greater than the current size, the appended affinity masks will bet set to- 0. If- countis less than the current size, then this object will only contain the first- countelements after this call.- Parameters
- count – Number of affinity masks to set the size to. 
 
 - 
virtual void *cast_abi(TypeId id) noexcept = 0
- Returns a pointer to the interface defined by the given type id if this object implements the type id’s interface. - Objects can support multiple interfaces, even interfaces that are in different inheritance chains. - The returned object will have omni::core::IObject::acquire() called on it before it is returned, meaning it is up to the caller to call omni::core::IObject::release() on the returned pointer. - The returned pointer can be safely - reinterpret_cast<>to the type id’s C++ class. For example, “omni.windowing.IWindow” can be cast to- omni::windowing::IWindow.- Do not directly use this method, rather use a wrapper function like omni::core::cast() or omni::core::ObjectPtr::as(). - Thread Safety
- This method is thread safe. 
 
 - 
virtual void acquire_abi() noexcept = 0
- Increments the object’s reference count. - Objects may have multiple reference counts (e.g. one per interface implemented). As such, it is important that you call omni::core::IObject::release() on the same pointer from which you called omni::core::IObject::acquire(). - Do not directly use this method, rather use omni::core::ObjectPtr, which will manage calling omni::core::IObject::acquire() and omni::core::IObject::release() for you. - Thread Safety
- This method is thread safe. 
 
 - 
virtual void release_abi() noexcept = 0
- Decrements the objects reference count. - Most implementations will destroy the object if the reference count reaches 0 (though this is not a requirement). - Objects may have multiple reference counts (e.g. one per interface implemented). As such, it is important that you call omni::core::IObject::release() on the same pointer from which you called omni::core::IObject::acquire(). - Do not directly use this method, rather use omni::core::ObjectPtr, which will manage calling omni::core::IObject::acquire() and omni::core::IObject::release() for you. - Thread Safety
- This method is thread safe. 
 
 
- 
inline void *cast(omni::core::TypeId id) noexcept