RealityServer Web Services API Programmer's Manual

iprotocol.h File Reference

Description

RealityServer(R) Web Services protocol API. See Protocol Processing.

Code Example

iprotocol.h

‎//*****************************************************************************
// Copyright 1986-2011 by mental images GmbH, Fasanenstr. 81, D-10623 Berlin,
// Germany. All rights reserved.
//*****************************************************************************
//*****************************************************************************

#ifndef MI_RS_WEB_SERVICES_IPROTOCOL_H
#define MI_RS_WEB_SERVICES_IPROTOCOL_H

#include <mi/base/interface_declare.h>

namespace mi {
class IDynamic_array;
class IMap;
namespace http {
class IConnection;
class IRequest;
} // namespace http

namespace nservices {
class IEvent_context;
class IFactory;
class IConverter;
class IService_command;
class IUser_type_definition;

} // namespace nservices

namespace rswservices {

class IProtocol_context : public
    mi::base::Interface_declare<0x82A6F3F0,0x56A2,0x4D2A,0x84,0x2B,0xE8,0xE2,0x45,0x3F,0x87,0x45>
{
public:
    virtual mi::Sint32 
               set_converter(mi::nservices::IConverter *converter) = 0;

    virtual mi::nservices::IConverter *get_converter() const = 0;

    virtual IDynamic_array *get_command_array() = 0;

    virtual IMap *get_attachments() const = 0;

    virtual nservices::IEvent_context *get_event_context() = 0;

    virtual nservices::IFactory *get_factory() = 0;

    virtual const char *get_command_set(Size idx) const = 0;

    virtual const nservices::IService_command *get_command(const char *command_name,
                                                            const char *command_set) const = 0;

    virtual const nservices::IService_command *get_command(Size idx, 
                                                           const char *command_set) const = 0;

    virtual const nservices::IUser_type_definition *get_user_type(
        const char *type_name) const = 0;

    virtual const nservices::IUser_type_definition *get_user_type(Size idx) const = 0;

};

class IProtocol : public
    mi::base::Interface_declare<0xA6FAB209,0xD94D,0x41CC,0x97,0x28,0xBA,0x2B,0xC0,0x6F,0x64,0x8C>
{
public:
    enum Protocol_confidence {
        PROTOCOL_CONFIDENCE_OVERRIDE = 4,
        PROTOCOL_CONFIDENCE_HIGH = 3,
        PROTOCOL_CONFIDENCE_MEDIUM = 2,
        PROTOCOL_CONFIDENCE_LOW = 1,
        PROTOCOL_CONFIDENCE_NONE = 0,
        PROTOCOL_CONFIDENCE_FORCE_32_BIT = 0xffffffffU
    };

    virtual const char *get_name() const = 0;

    virtual Protocol_confidence 
               test_request(const http::IRequest *request) const = 0;

    virtual Sint32 
               deserialize(IProtocol_context *context, http::IRequest *request) = 0;

    virtual Sint32 
               serialize(IProtocol_context *context,
        http::IConnection *connection,
        const IDynamic_array *command_responses) = 0;
};

 // end group mi_rswservices_protocol
} // namespace rswservices
} // namespace mi

#endif // MI_RS_WEB_SERVICES_IPROTOCOL_H

Namespaces

namespace mi
namespace mi::http
namespace mi::nservices
namespace 
Namespace for the RealityServer Web Services API. More...

Classes

class 
Implements a protocol. More...
class 
Context class used by protocol modules. More...