neuray API Programmer's Manual

inetwork_configuration.h File Reference

Description

API component for networking related settings.

Code Example

inetwork_configuration.h

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

#ifndef MI_NEURAYLIB_INETWORK_CONFIGURATION_H
#define MI_NEURAYLIB_INETWORK_CONFIGURATION_H

#include <mi/base/interface_declare.h>

// X11/Xlib.h defines Status to int
#if defined(_XLIB_H_) || defined(_X11_XLIB_H_)
#undef Status
#endif // _XLIB_H_ || _X11_XLIB_H_

namespace mi {

class IString;

namespace neuraylib {

class IHost_callback;
class INetwork_statistics;


class INetwork_configuration : public
    mi::base::Interface_declare<0xb60d3124,0xd410,0x400b,0xa0,0x1a,0x5c,0x5a,0x23,0x8d,0xcf,0xf2>
{
public:
    enum Mode
    {
        MODE_OFF = 0,
        MODE_TCP = 1,
        MODE_UDP = 2,
        MODE_TCP_WITH_DISCOVERY = 3,
        //  Undocumented, for alignment only
        MODE_FORCE_32_BIT = 0xffffffffU
    };

    virtual Sint32 
               set_mode( Mode mode) = 0;

    virtual Mode 
               get_mode() const = 0;

    enum Status
    {
        CONNECTION_STANDALONE = 0,
        CONNECTION_STARTING = 1,
        CONNECTION_ESTABLISHED = 2,
        CONNECTION_SHUTTINGDOWN = 3,
        CONNECTION_SHUTDOWN = 4,
        CONNECTION_FAILURE = 5,
        //  Undocumented, for alignment only
        CONNECTION_FORCE_32_BIT = 0xffffffffU
    };

    virtual Status 
               get_status() const = 0;

    // Configuration for multicast networking

    virtual Sint32 
               set_multicast_address( const char* address) = 0;

    virtual const IString* get_multicast_address() const = 0;

    virtual void set_multicast_ttl( Uint32 ttl) = 0;

    virtual Uint32 
               get_multicast_ttl() const  = 0;

    virtual Sint32 
               set_cluster_interface( const char* address) = 0;

    virtual const IString* get_cluster_interface() const = 0;

    virtual Sint32 
               set_discovery_address( const char* address) = 0;

    virtual const IString* get_discovery_address() const = 0;

    virtual Sint32 
               set_discovery_identifier( const char* identifier) = 0;

    virtual const IString* get_discovery_identifier() const = 0;

    // Configuration of redundancy

    virtual Sint32 
               set_redundancy_level( Uint32 level) = 0;

    virtual Uint32 
               get_redundancy_level() const = 0;

    // Configure and query the list of hosts which can connect with this host

    virtual Sint32 
               add_configured_host( const char* address) = 0;

    virtual Sint32 
               remove_configured_host( const char* address) = 0;

    virtual Uint32 
               get_number_of_configured_hosts() const = 0;

    virtual const IString* get_configured_host( Uint32 index) const = 0;

    virtual Sint32 
               set_compression_level( Uint32 level) = 0;

    virtual Sint32 
               get_compression_level() const = 0;

    // Callbacks for joining / leaving hosts

    virtual Sint32 
               register_host_callback( IHost_callback* callback) = 0;

    virtual Sint32 
               unregister_host_callback( IHost_callback* callback) = 0;

    virtual const INetwork_statistics* get_network_statistics() const = 0;

    virtual Sint32 
               set_use_rdma( bool use_rdma) = 0;

    virtual bool get_use_rdma() const = 0;

    virtual Sint32 
               set_rdma_interface( const char* rdma_interface) = 0;

    virtual const IString* get_rdma_interface() const = 0;
};

mi_static_assert( sizeof( INetwork_configuration::Status) == sizeof( Uint32));
mi_static_assert( sizeof( INetwork_configuration::Mode) == sizeof( Uint32));
 // end group mi_neuray_configuration

} // namespace neuraylib

} // namespace mi

// X11/Xlib.h defines Status to int
#if defined(_XLIB_H_) || defined(_X11_XLIB_H_)
#define Status int
#endif // _XLIB_H_ || _X11_XLIB_H_

#endif // MI_NEURAYLIB_INETWORK_CONFIGURATION_H

Namespaces

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

Classes

class 
This interface is used to query and change the networking configuration. More...