neuray API Programmer's Manual

iiray_bridge_server.h File Reference

Description

Bridge server.

Code Example

iiray_bridge_server.h

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

#ifndef MI_NEURAYLIB_IIRAY_BRIDGE_SERVER_H
#define MI_NEURAYLIB_IIRAY_BRIDGE_SERVER_H

#include <mi/base/enums.h>
#include <mi/base/interface_declare.h>


namespace mi {

class IString;

namespace http { class IServer; }

namespace bridge {

class IApplication_session_handler;
class IServer_session;










class IIray_bridge_snapshot_handler : public
    mi::base::Interface_declare<0x46e19aa2,0xf669,0x422d,0x96,0x83,0x69,0xbd,0x9b,0x69,0x7f,0x55>
{
public:

    virtual bool on_snapshot_request( IServer_session* session, Uint32 context_id) = 0;

    virtual Sint32 
               on_snapshot_creation( IServer_session* session, Uint32 context_id,
        const char* scene_name, bool incremental, const char* suggested_snapshot_name, 
        const char* cb_file_data, IString* final_snapshot_name, 
        IString* error_message) = 0;

    virtual void on_snapshot_error( IServer_session* session, Uint32 context_id,
        Sint32 error_code, const char* error_message) = 0;
};

class IIray_bridge_application : public
    mi::base::Interface_declare<0x199fadaf,0xf8c0,0x4d40,0xaf,0x20,0x95,0x6c,0x1d,0x73,0xf4,0xa4>
{
public:
    virtual Sint32 
               set_disk_cache( const char* location) = 0;

    virtual const char* get_disk_cache() const = 0;

    virtual Sint32 
               open( bool enable_streaming = true) = 0;

    virtual Sint32 
               close() = 0;

    virtual Sint32 
               set_session_handler( IApplication_session_handler* handler) = 0;

    virtual IApplication_session_handler* get_session_handler() const = 0;

    virtual Sint32 
               set_log_forwarding_limit( base::Message_severity limit) = 0;

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

    virtual Sint32 
               set_snapshot_path( const char* path) = 0;

    virtual const char* get_snapshot_path() const = 0;

    virtual Sint32 
               set_snapshot_handler( IIray_bridge_snapshot_handler* handler) = 0;
};

class IIray_bridge_server : public
    mi::base::Interface_declare<0x1acd50a4,0xbc89,0x4712,0x97,0xd,0x79,0xf2,0x99,0x8b,0x4,0x12>
{
public:
    virtual IIray_bridge_application* create_application(
        const char* application_path, http::IServer* http_server) = 0;

    virtual const char* get_bridge_protocol_version() const = 0;

    virtual Sint32 
               delete_snapshot(const char* snapshot_path) = 0;

    virtual Sint32 
               delete_snapshot_from_string(const char* cb_data) = 0;
};
 // end group mi_neuray_bridge_server

} // namespace bridge

} // namespace mi

#endif // MI_NEURAYLIB_IBRIDGE_SERVER_H

Namespaces

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

Classes

class 
The Iray Bridge application. More...
class 
API component that serves as entry point for the server-side Iray Bridge API. More...
class 
The IIray_bridge_snapshot_handler can be used to control snapshot creation for an Iray bridge server application. More...