neuray API Programmer's Manual

icluster_manager_configuration.h File Reference

Description

API component to interact with the cluster manager.

Code Example

icluster_manager_configuration.h

‎/***************************************************************************************************
 * Copyright 2024 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_ICLUSTER_MANAGER_CONFIGURATION_H
#define MI_NEURAYLIB_ICLUSTER_MANAGER_CONFIGURATION_H

#include <mi/base/interface_declare.h>

namespace mi {

namespace neuraylib {





class ICluster_notification_callback : public
    base::Interface_declare<0x1b9bfd07,0x9693,0x4e3f,0x83,0xb1,0x85,0x3b,0x91,0x83,0xd2,0x66>
{
public:
    virtual void error_callback() = 0;

    virtual void status_change_callback() = 0;

    virtual void cluster_change_callback() = 0;

    virtual void cluster_ready_callback(bool is_ready) = 0;
};

class ICluster_manager_node : public
    base::Interface_declare<0x6b1cbc68,0x3af1,0x4a56,0x83,0x68,0x00,0x13,0xd4,0xec,0xc2,0xfa>
{
public:
    virtual const char* get_node_name() = 0;

    virtual const char* get_ip_address() = 0;

    virtual const char* get_user_name() = 0;

    virtual Size 
               get_cpu_count() = 0;

    virtual Float32 
               get_cpu_load() = 0;

    virtual Size 
               get_total_main_memory() = 0;

    virtual Size 
               get_free_main_memory() = 0;

    virtual Size 
               get_gpu_count() = 0;

    virtual Float32 
               get_gpu_load() = 0;

    virtual Size 
               get_total_gpu_memory() = 0;

    virtual Size 
               get_free_gpu_memory() = 0;
};

class ICluster_manager_cluster : public
    base::Interface_declare<0x5c88e256,0x6d61,0x4d76,0x91,0x13,0xe0,0x37,0x9f,0x4a,0xfd,0x07>
{
public:
    virtual const char* get_head_node() = 0;

    virtual const char* get_software_package_id() = 0;

    virtual const char* get_bridge_protocol_version() = 0;

    virtual const char* get_authentication_token() = 0;

    virtual bool is_compatible() = 0;

    virtual Size 
               get_number_of_cluster_nodes() = 0;

    virtual ICluster_manager_node* get_cluster_node( Size index) = 0;

    virtual bool can_be_closed() = 0;

    virtual const char* get_head_node_address() = 0;

    virtual ICluster_manager_node* get_head_node_descriptor() = 0;

    virtual ICluster_manager_node* grow_cluster(Sint32* errors) = 0;

    virtual Sint32 
               shrink_cluster(ICluster_manager_node* node) = 0;
};

class ICluster_pool_information : public
    base::Interface_declare<0xd444f7cc,0xf8ff,0x4a79,0xa0,0xe5,0x51,0x02,0xc6,0x66,0x37,0x94>
{
public:
    virtual Size 
               get_number_of_nodes() const = 0;

    virtual ICluster_manager_node* get_node( Size index) const = 0;
};

class ISoftware_package : public
    base::Interface_declare<0xa7a3a95c,0x3db8,0x4fef,0xb9,0x10,0x56,0x68,0xd7,0xa2,0xac,0x5>
{
public:
    virtual const char* get_id() const = 0;

    virtual const char* get_description() const = 0;

    virtual const char* get_bridge_protocol_version() const = 0;
};

class ICluster_manager_connection : public
    base::Interface_declare<0x0a54aeb4,0xb2e9,0x4893,0x9f,0x93,0x30,0xa4,0x61,0x1b,0xea,0x2a>
{
public:
    virtual const char* get_address() const = 0;

    virtual Size 
               get_number_of_compatible_software_packages() const = 0;

    virtual const ISoftware_package* get_compatible_software_package( Size index) const = 0;

    virtual Size 
               get_number_of_software_packages() const = 0;

    virtual const ISoftware_package* get_software_package( Size index) const = 0;

    virtual const ICluster_pool_information* get_cluster_pool_information() const = 0;

    virtual ICluster_manager_cluster* reserve_cluster(
       Size requested_nodes, const char* software_package_id, Sint32* errors = 0) = 0;

    virtual Sint32 
               release_cluster() = 0;

    virtual ICluster_manager_cluster* get_cluster() = 0;

    virtual void set_cluster_notification_callback( ICluster_notification_callback* callback) = 0;

    virtual bool authenticate_user(
        const char* user_name, const char* password, bool* is_admin = 0, Sint32* errors = 0) = 0;

    virtual void set_auto_release_cluster( bool auto_release_enabled) = 0;

    virtual bool get_auto_release_cluster() = 0;

    virtual const char* get_vca_name() const = 0;
};

class ICluster_manager_configuration : public
    base::Interface_declare<0x6ac7506d,0x3604,0x49ad,0xb9,0xc3,0x6f,0xb3,0xf5,0x0c,0xa3,0x0f>
{
public:
    virtual ICluster_manager_connection* connect(
        const char* address, const char* user_name, const char* password, Sint32* errors = 0) = 0;
};
 // end group mi_neuray_cluster_manager

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_ICLUSTER_MANAGER_CONFIGURATION_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
Represents a cluster which was reserved through the cluster manager. More...
class 
An API component which can be used to create a connection to a cluster manager. More...
class 
Represents a connection to a cluster manager. More...
class 
Provides information about a node which is part of a node pool or reserved cluster. More...
class 
Abstract interface for giving notifications about errors and status changes. More...
class 
Represents a pool of nodes managed though the cluster manager. More...
class 
Represents a software package installed on the pool of nodes. More...