Program Listing for File repository.h#

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

#ifndef __IDL_GENERATED__REPOSITORY_H__20251106_105035_844__
#define __IDL_GENERATED__REPOSITORY_H__20251106_105035_844__

#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 "module.h"

namespace sdv
{
    namespace core
    {
        typedef uint64_t TObjectID;

        interface IObjectAccess
        {
            static constexpr ::sdv::interface_id _id = 0x8EEACAB6A9B2D46B;

            virtual IInterfaceAccess* GetObject(/*in*/ const sdv::u8string& ssObjectName) = 0;

            virtual IInterfaceAccess* GetObjectByID(/*in*/ TObjectID tObjectID) = 0;
        };

        enum class EObjectInfoFlags : uint32_t
        {
            object_foreign = 0x00000100,

            object_controlled = 0x00008000,

            object_isolated = 0x00010000,
        };

        struct SObjectInfo
        {
            TObjectID tObjectID;

            TModuleID tModuleID;

            SClassInfo sClassInfo;

            sdv::u8string ssObjectName;

            sdv::u8string ssObjectConfig;

            uint32_t uiFlags;
        };

        interface IRepositoryInfo
        {
            static constexpr ::sdv::interface_id _id = 0x0FB06F2FC3AED094;

            virtual SClassInfo FindClass(/*in*/ const sdv::u8string& ssClassName) const = 0;

            virtual sdv::sequence<SObjectInfo> GetObjectList() const = 0;

            virtual SObjectInfo GetObjectInfo(/*in*/ TObjectID tObjectID) const = 0;

            virtual SObjectInfo FindObject(/*in*/ const sdv::u8string& ssObjectName) const = 0;
        };

        interface IRepositoryControl
        {
            static constexpr ::sdv::interface_id _id = 0xB8F96D8B650478A5;

            virtual TObjectID CreateObject(/*in*/ const sdv::u8string& ssClassName, /*in*/ const sdv::u8string& ssObjectName, /*in*/ const sdv::u8string& ssObjectConfig) = 0;

            virtual TObjectID CreateObjectFromModule(/*in*/ TModuleID tModuleID, /*in*/ const sdv::u8string& ssClassName, /*in*/ const sdv::u8string& ssObjectName, /*in*/ const sdv::u8string& ssObjectConfig) = 0;

            virtual bool DestroyObject(/*in*/ const sdv::u8string& ssObjectName) = 0;
        };

        interface IRepositoryUtilityCreate
        {
            static constexpr ::sdv::interface_id _id = 0x0C3CEDF14F63B91D;

            virtual IInterfaceAccess* CreateUtility(/*in*/ const sdv::u8string& ssClassName, /*in*/ const sdv::u8string& ssObjectConfig) = 0;
        };

        /*local*/ interface IRepositoryMarshallCreate
        {
            static constexpr ::sdv::interface_id _id = 0x580D4A9B224A24F7;

            virtual IInterfaceAccess* CreateProxyObject(/*in*/ sdv::interface_id id) = 0;

            virtual IInterfaceAccess* CreateStubObject(/*in*/ sdv::interface_id id) = 0;
        };

        interface IRegisterForeignObject
        {
            static constexpr ::sdv::interface_id _id = 0xDBF8AD8B6DDCA82A;

            virtual TObjectID RegisterObject(/*in*/ IInterfaceAccess* pObjectIfc, /*in*/ const sdv::u8string& ssObjectName) = 0;
        };

        interface ILinkCoreRepository
        {
            static constexpr ::sdv::interface_id _id = 0xA11C6FF4116D35F1;

            virtual void LinkCoreRepository(/*in*/ IInterfaceAccess* pCoreRepository) = 0;

            virtual void UnlinkCoreRepository() = 0;
        };
    }
}

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#endif // !defined(__IDL_GENERATED__REPOSITORY_H__20251106_105035_854__)