Program Listing for File dispatch.h#

Return to documentation for file (interfaces\dispatch.h)

#ifndef __IDL_GENERATED__DISPATCH_H__20251008_120502_173__
#define __IDL_GENERATED__DISPATCH_H__20251008_120502_173__

#ifdef _MSC_VER
// Prevent bogus warnings about uninitialized members during static code analysis.
#pragma warning(push)
#pragma warning(disable : 26495)
#endif

// Provide fixed width integer types.
#include <cstdint>

#include "core.h"

namespace sdv
{
    namespace core
    {
        /*local*/ interface ISignalTransmission
        {
            static constexpr ::sdv::interface_id _id = 0xF90BC6A344DB2275;

            enum class ETxTriggerBehavior : uint32_t
            {
                none = 0,

                spontaneous = 1,

                periodic_if_active = 2,
            };

            virtual IInterfaceAccess* CreateTxTrigger(/*in*/ uint32_t uiCycleTime, /*in*/ uint32_t uiDelayTime, /*in*/ uint32_t uiBehaviorFlags, /*in*/ IInterfaceAccess* pTriggerCallback) = 0;

            virtual IInterfaceAccess* RegisterTxSignal(/*in*/ const sdv::u8string& ssSignalName, /*in*/ sdv::any_t anyDefVal) = 0;

            virtual IInterfaceAccess* RegisterRxSignal(/*in*/ const sdv::u8string& ssSignalName) = 0;
        };

        interface ITxTrigger
        {
            static constexpr ::sdv::interface_id _id = 0xDB06CD60F82C907C;

            virtual bool AddSignal(/*in*/ const sdv::u8string& ssSignalName) = 0;

            virtual void RemoveSignal(/*in*/ const sdv::u8string& ssSignalName) = 0;
        };

        interface ITxTriggerCallback
        {
            static constexpr ::sdv::interface_id _id = 0x6CE52FD790AF9C91;

            virtual void Execute() = 0;
        };

        enum class ESignalDirection : int32_t
        {
            sigdir_tx,

            sigdir_rx,
        };

        struct SSignalRegistration
        {
            sdv::u8string ssName;

            ESignalDirection eType;
        };

        /*local*/ interface ISignalAccess
        {
            static constexpr ::sdv::interface_id _id = 0xB7E35E4C8AAED273;

            virtual IInterfaceAccess* RequestSignalPublisher(/*in*/ const sdv::u8string& ssSignalName) = 0;

            virtual IInterfaceAccess* AddSignalSubscription(/*in*/ const sdv::u8string& ssSignalName, /*in*/ IInterfaceAccess* pSubscriber) = 0;

            virtual sdv::sequence<SSignalRegistration> GetRegisteredSignals() const = 0;
        };

        /*local*/ interface IDispatchTransaction
        {
            static constexpr ::sdv::interface_id _id = 0x2B983A42777B1AA4;

            virtual IInterfaceAccess* CreateTransaction() = 0;
        };

        /*local*/ interface ISignalWrite
        {
            static constexpr ::sdv::interface_id _id = 0x3F0D463FAA1B795B;

            virtual void Write(/*in*/ sdv::any_t anyVal, /*in*/ IInterfaceAccess* pTransaction) = 0;
        };

        /*local*/ interface ISignalRead
        {
            static constexpr ::sdv::interface_id _id = 0x29324E45BD52B74F;

            virtual sdv::any_t Read(/*in*/ IInterfaceAccess* pTransaction) const = 0;
        };

        /*local*/ interface ISignalReceiveEvent
        {
            static constexpr ::sdv::interface_id _id = 0x7D0DD92A85FA0CB4;

            virtual void Receive(/*in*/ sdv::any_t anyVal) = 0;
        };
    }
}

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#endif // !defined(__IDL_GENERATED__DISPATCH_H__20251008_120502_175__)