neuray API Programmer's Manual

iiray_bridge_client.h File Reference

Description

Bridge server.

Code Example

iiray_bridge_client.h

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

#ifndef MI_NEURAYLIB_IIRAY_BRIDGE_CLIENT_H
#define MI_NEURAYLIB_IIRAY_BRIDGE_CLIENT_H

#include <mi/base/enums.h>
#include <mi/neuraylib/idata.h>
#include <mi/neuraylib/itransaction.h>
#include <mi/neuraylib/iprogress_callback.h>
#include <mi/neuraylib/ibridge_client.h>

namespace mi {

namespace base { class ILogger; }

namespace bridge {




class IIray_bridge_snapshot_callback : public
    mi::base::Interface_declare<0xe36efcd1,0xeb3d,0x4c9c,0xbc,0x8d,0xc0,0x28,0xf1,0xe9,0xc7,0xdf,
    mi::neuraylib::IProgress_callback>
{
public:
    virtual void ready( Sint32 error_code, const char* file_name) = 0;
};

class IIray_bridge_snapshot_context : public
    mi::base::Interface_declare<0xe624c597,0x2223,0x441b,0x81,0xf7,0x43,0x48,0xc8,0xfd,0x43,0x1a>
{
public:
    virtual Sint32 
               create_snapshot(
        neuraylib::ITransaction* transaction,
        const char* file_name,
        IIray_bridge_snapshot_callback* callback,
        bool incremental = false) = 0;

    virtual Sint32 
               cancel_snapshot() = 0;

    virtual Sint32 
               set_option( const char* name, const IData* value) = 0;

    virtual const IData* get_option( const char* name) const = 0;

    template<class T>
    const T* get_option( const char* name) const
    {
        const IData* ptr_idata = get_option( name);
        if ( !ptr_idata)
            return 0;
        const T* ptr_T = static_cast<const T*>( ptr_idata->get_interface( typename T::IID()));
        ptr_idata->release();
        return ptr_T;
    }

    virtual Size 
               get_options_length() const = 0;

    virtual const char* get_option_name( Size index) const = 0;

    virtual const char* get_option_type( Size index) const = 0;
};

class IIray_bridge_session : public
    mi::base::Interface_declare<0x32fcf9c9,0x3572,0x4bfb,0x83,0x37,0x1d,0xfa,0x14,0xaf,0xba,0xe8>
{
public:
    virtual Client_session_state 
               get_state() = 0;

    virtual void add_session_state_callback( IClient_session_state_callback* callback) = 0;

    virtual void remove_session_state_callback( IClient_session_state_callback* callback) = 0;

    virtual const IArray* get_supported_render_modes() = 0; 
};

class IIray_bridge_client : public
    mi::base::Interface_declare<0x2e3322ff,0xc7a1,0x4664,0x99,0x6d,0xef,0xd1,0xf2,0x24,0x83,0xa4>
{
public:

    virtual Sint32 
               set_application_url( const char* application_url) = 0;

    virtual const char* get_application_url() const = 0;

    virtual Sint32 
               set_security_token( const char* security_token) = 0;

    virtual const char* get_security_token() const = 0;

    virtual IIray_bridge_snapshot_context* create_snapshot_context(
        neuraylib::ITransaction* transaction, const char* scene_name) = 0;

    virtual Sint32 
               set_log_forwarding_level( base::Message_severity level) = 0;

    virtual base::Message_severity 
               get_log_forwarding_level() const = 0;

    virtual void set_receiving_logger( base::ILogger* logger) = 0;

    virtual base::ILogger* get_receiving_logger() const = 0;

    virtual const char* get_bridge_protocol_version() const = 0;

    virtual IIray_bridge_session* get_session(
        const char* application_url, const char* security_token = 0) = 0;
};
 // end group mi_neuray_bridge_client

} // namespace bridge

} // namespace mi

#endif // MI_NEURAYLIB_IIRAY_BRIDGE_CLIENT_H

Namespaces

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

Classes

class 
API component that serves as entry point for the client-side Iray Bridge API. More...
class 
Represents a session (connection) to an Iray Bridge Server. More...
class 
Abstract interface for snapshot events. More...
class 
Context for creating Iray Bridge snapshots. More...