Program Listing for File module.idl#

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

 /********************************************************************************
 * Copyright (c) 2025-2026 ZF Friedrichshafen AG
 *
 * This program and the accompanying materials are made available under the
 * terms of the Apache License Version 2.0 which is available at
 * https://www.apache.org/licenses/LICENSE-2.0
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Contributors:
 *   Erik Verhoeven - initial API and implementation
 ********************************************************************************/

#include "core.idl"

module sdv
{
    module core
    {
        typedef uint64 TModuleID;

        const TModuleID tCoreLibModule = 0xffffffffffffffffu;

        interface IModuleControl
        {
            TModuleID Load(in u8string ssModulePath);

            boolean Unload(in TModuleID tModuleID);

            boolean HasActiveObjects(in TModuleID tModuleID) const;
        };

        interface IModuleControlConfig
        {
            boolean AddModuleSearchDir(in u8string ssDir);

            sequence<u8string> GetModuleSearchDirs() const;
        };

        struct SModuleInfo
        {
            TModuleID   tModuleID;
            u8string    ssPath;
            u8string    ssFilename;
            uint32      uiVersion;
            boolean     bActive;
        };

        interface IModuleInfo
        {
            sequence<SModuleInfo> GetModuleList() const;

            sequence<SClassInfo> GetClassList(in TModuleID tModuleID) const;
        };
    };
};