Program Listing for File ipc.idl#

Return to documentation for file (interfaces\ipc.idl)

#include "core.idl"

module sdv
{
    module ipc
    {
        struct SChannelEndpoint
        {
            IInterfaceAccess  pConnection;
            u8string          ssConnectString;
        };

        interface ICreateEndpoint
        {
            SChannelEndpoint CreateEndpoint(in u8string ssChannelConfig);
        };

        interface IChannelAccess
        {
            IInterfaceAccess Access(in u8string ssConnectString);
        };

        enum EConnectStatus : uint32
        {
            uninitialized = 0,
            initializing = 1,
            initialized = 2,
            connecting = 10,
            negotiating = 20,
            connection_error = 990,
            connected = 11,
            communication_error = 991,
            disconnected = 30,
            disconnected_forced = 32,
            terminating = 90,
        };

        interface IConnect
        {
            boolean AsyncConnect(in IInterfaceAccess pReceiver);

            boolean WaitForConnection(in uint32 uiWaitMs);

            void CancelWait();

            void Disconnect();

            uint64 RegisterStatusEventCallback(in IInterfaceAccess pEventCallback);

            void UnregisterStatusEventCallback(in uint64 uiCookie);

            EConnectStatus GetStatus() const;
        };

        interface IConnectEventCallback
        {
            void SetStatus(in EConnectStatus eConnectStatus);
        };

        interface IDataSend
        {
            boolean SendData(inout sequence<pointer<uint8>> seqData);
        };

        interface IDataReceiveCallback
        {
            void ReceiveData(inout sequence<pointer<uint8>> seqData);
        };
    }; // module ipc
}; // module sdv