Program Listing for File module.h#

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

#ifndef __IDL_GENERATED__MODULE_H__20251106_105035_688__
#define __IDL_GENERATED__MODULE_H__20251106_105035_688__

#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
    {
        typedef uint64_t TModuleID;

        static const TModuleID tCoreLibModule = 0xffffffffffffffffu;

        interface IModuleControl
        {
            static constexpr ::sdv::interface_id _id = 0x8AA4273629DB8A02;

            virtual TModuleID Load(/*in*/ const sdv::u8string& ssModulePath) = 0;

            virtual bool Unload(/*in*/ TModuleID tModuleID) = 0;

            virtual bool HasActiveObjects(/*in*/ TModuleID tModuleID) const = 0;
        };

        interface IModuleControlConfig
        {
            static constexpr ::sdv::interface_id _id = 0x229760CE616ED234;

            virtual bool AddModuleSearchDir(/*in*/ const sdv::u8string& ssDir) = 0;

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

        struct SModuleInfo
        {
            TModuleID tModuleID;

            sdv::u8string ssPath;

            sdv::u8string ssFilename;

            uint32_t uiVersion;

            bool bActive;
        };

        interface IModuleInfo
        {
            static constexpr ::sdv::interface_id _id = 0x5FE3099157ED7EED;

            virtual sdv::sequence<SModuleInfo> GetModuleList() const = 0;

            virtual sdv::sequence<SClassInfo> GetClassList(/*in*/ TModuleID tModuleID) const = 0;
        };
    }
}

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#endif // !defined(__IDL_GENERATED__MODULE_H__20251106_105035_693__)