Program Listing for File param.idl#
↰ Return to documentation for file (interfaces\param.idl)
/********************************************************************************
* Copyright (c) 2025-2026 Contributors to the Eclipse Foundation
*
* 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
{
enum EParamFlags : uint32
{
mask = 0xff,
read_write = 0x00,
read_only = 0x01,
temporary = 0x20,
state_mask = 0xff00,
dirty = 0x0100,
locked = 0x0400,
};
enum EParamType
{
boolean_param,
number_param,
string_param,
enum_param,
bitmask_param
};
struct SNumberInfo
{
any anyLowerLimit;
boolean bIncludeLowerLinit;
any anyUpperLimit;
boolean bIncludeUpperLimit;
};
struct SStringInfo
{
u8string ssPattern;
};
struct SLabelInfo
{
struct SLabel
{
any anyValue;
u8string ssLabel;
};
sequence<SLabel> seqLabels;
};
struct SParamInfo
{
EParamType eType;
uint32 uiFlags;
u8string ssName;
u8string ssGroup;
u8string ssUnit;
u8string ssDescription;
any anyDefaultVal;
union switch (eType)
{
case EParamType::number_param:
SNumberInfo sNumberInfo;
case EParamType::string_param:
SStringInfo sStringInfo;
case EParamType::enum_param:
SLabelInfo sEnumInfo;
case EParamType::bitmask_param:
SLabelInfo sBitmaskInfo;
} uExtInfo;
};
interface IParameters
{
sequence<u8string> GetParamPaths() const;
any GetParam(in u8string ssPath) const;
boolean SetParam(in u8string ssPath, in any anyValue);
SParamInfo GetParamInfo(in u8string ssPath) const;
boolean IsParamDirty(in u8string ssPath) const;
void ResetParamDirtyFlag(in u8string ssPath);
boolean IsParamMapDirty() const;
void ResetParamMapDirtyFlags();
};
}; // sdv