Program Listing for File process.idl#

Return to documentation for file (interfaces\process.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 process
    {
        typedef uint32 TProcessID;

        local interface IProcessLifetimeCallback
        {
            void ProcessTerminated(in TProcessID tProcessID, in int64 iRetValue);
        };

        local interface IProcessLifetime
        {
            uint32 RegisterMonitor(in TProcessID tProcessID, in IInterfaceAccess pMonitor);

            void UnregisterMonitor(in uint32 uiCookie);

            boolean WaitForTerminate(in TProcessID tProcessID, in  uint32 uiWaitMs);
        };

        enum EProcessRights : uint32
        {
            default_rights = 0,
            parent_rights = 10,
            reduced_rights = 20,
        };

        local interface IProcessControl
        {
            TProcessID Execute(in u8string ssModule, in sequence<u8string> seqArgs, in EProcessRights eRights);

            boolean Terminate(in TProcessID tProcessID);
        };

        local interface IProcessInfo
        {
            TProcessID GetProcessID() const;
        };
    };
};