-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathIProperties.h
More file actions
63 lines (59 loc) · 2.52 KB
/
Copy pathIProperties.h
File metadata and controls
63 lines (59 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#pragma once
namespace Platform::Interfaces {
template <typename...>
struct IProperties;
/// <summary>
/// <para>Defines a properties operator that is able to get or set values of properties of a object of a specific type.</para>
/// <para>Определяет оператор свойств, который может получать или устанавливать значения свойств объекта определенного типа.</para>
/// </summary>
/// <typeparam name="TObject">
/// <para>Object type.</para>
/// <para>Тип объекта.</para>
/// </typeparam>
/// <typeparam name="TProperty">
/// <para>Property reference type.</para>
/// <para>Тип ссылки на свойство.</para>
/// </typeparam>
/// <typeparam name="TValue">
/// <para>Property value type.</para>
/// <para>Тип значения свойства.</para>
/// </typeparam>
template <typename TObject, typename TProperty, typename TValue>
struct IProperties<TObject, TProperty, TValue> {
/// <summary>
/// <para>Gets the value of the property in the specified object.</para>
/// <para>Получает значение свойства в указанном объекте.</para>
/// </summary>
/// <param name="object">
/// <para>The object reference.</para>
/// <para>Ссылка на объект.</para>
/// </param>
/// <param name="property">
/// <para>The property reference.</para>
/// <para>Ссылка на свойство.</para>
/// </param>
/// <returns>
/// <para>The value of the property.</para>
/// <para>Значение свойства.</para>
/// </returns>
virtual TValue GetValue(TObject object, TProperty property) = 0;
/// <summary>
/// <para>Sets the value of a property in the specified object.</para>
/// <para>Устанавливает значение свойства в указанном объекте.</para>
/// </summary>
/// <param name="object">
/// <para>The object reference.</para>
/// <para>Ссылка на объект.</para>
/// </param>
/// <param name="property">
/// <para>The property reference.</para>
/// <para>Ссылка на свойство.</para>
/// </param>
/// <param name="value">
/// <para>The value.</para>
/// <para>Значение.</para>
/// </param>
virtual void SetValue(TObject object, TProperty property, TValue value) = 0;
virtual ~IProperties() = default;
};
} // namespace Platform::Interfaces