Program Listing for File app.h#

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

#ifndef __IDL_GENERATED__APP_H__20260703_131934_628__
#define __IDL_GENERATED__APP_H__20260703_131934_628__

#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"

#include "toml.h"

namespace sdv
{
    namespace app
    {
        enum class EAppOperationState : int32_t
        {
            not_started = 0,

            starting = 1,

            started = 2,

            initializing = 10,

            initialized = 12,

            configuring = 20,

            running = 30,

            shutting_down = 90,
        };

        struct SAppEvent
        {
            uint32_t uiEventID;

            uint32_t uiInfo;
        };

        static const uint32_t EVENT_OPERATION_STATE_CHANGED = 1;

        static const uint32_t EVENT_RUNNING_LOOP = 8;

        /*local*/ interface IAppEvent
        {
            static constexpr ::sdv::interface_id _id = 0xE545F66A4F61D52B;

            virtual void ProcessEvent(/*inout*/ SAppEvent& sEvent) = 0;
        };

        enum class EAppContext : uint32_t
        {
            no_context = 0,

            standalone = 10,

            external = 20,

            isolated = 30,

            main = 100,

            essential = 5,

            maintenance = 80,
        };

        /*local*/ interface IAppContext
        {
            static constexpr ::sdv::interface_id _id = 0xEA96ABD32AA9E41C;

            virtual EAppContext GetContextType() const = 0;

            virtual uint32_t GetInstanceID() const = 0;
        };

        /*local*/ interface IAppControl
        {
            static constexpr ::sdv::interface_id _id = 0xED694A7D83569900;

            virtual bool Startup(/*in*/ const sdv::u8string& ssConfig, /*in*/ IInterfaceAccess* pEventHandler) = 0;

            virtual void RunLoop() = 0;

            virtual void Shutdown(/*in*/ bool bForce) = 0;
        };

        interface IAppOperation
        {
            static constexpr ::sdv::interface_id _id = 0x23A03198AE6B8BD0;

            virtual EAppOperationState GetOperationState() const = 0;

            virtual void SetConfigMode() = 0;

            virtual void SetRunningMode() = 0;
        };

        interface IAppShutdownRequest
        {
            static constexpr ::sdv::interface_id _id = 0x0133298619E6BF21;

            virtual void RequestShutdown() = 0;
        };

        interface IAppSettingsPersist
        {
            static constexpr ::sdv::interface_id _id = 0x7644A487A55302E8;

            virtual bool LoadSettings() = 0;

            virtual bool SaveSettings() = 0;
        };

        interface IAppConnections
        {
            static constexpr ::sdv::interface_id _id = 0x275EE38B82B70F14;

            virtual sdv::sequence<sdv::u8string> GetListeners() const = 0;

            virtual sdv::u8string GetListenerConfig(/*in*/ const sdv::u8string& ssName) const = 0;

            virtual bool AddListenerConfig(/*in*/ const sdv::u8string& ssName, /*in*/ const sdv::u8string& ssConfig) = 0;

            virtual bool RemoveListenerConfig(/*in*/ const sdv::u8string& ssName) = 0;

            virtual sdv::sequence<sdv::u8string> GetConnections() const = 0;

            virtual sdv::u8string GetConnectionConfig(/*in*/ const sdv::u8string& ssName) const = 0;

            virtual bool AddConnectionConfig(/*in*/ const sdv::u8string& ssName, /*in*/ const sdv::u8string& ssConfig, /*in*/ const sdv::u8string& ssInsertBefore) = 0;

            virtual bool RemoveConnectionConfig(/*in*/ const sdv::u8string& ssName) = 0;

            virtual uint32_t GetConnectRetries() const = 0;
        };
    }
}

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#endif // !defined(__IDL_GENERATED__APP_H__20260703_131934_630__)