Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions cpp/Platform.Interfaces/ICounter[TResult, TArgument].h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,32 @@ namespace Platform::Interfaces {
template <typename...>
struct ICounter;

/// <summary>
/// <para>Defines a counter that requires an argument to perform a count.</para>
/// <para>Определяет счётчик, которому требуется аргумент для выполнения подсчёта.</para>
/// </summary>
/// <typeparam name="TResult">
/// <para>The count result type.</para>
/// <para>Тип результата подсчёта.</para>
/// </typeparam>
/// <typeparam name="TArgument">
/// <para>The argument type.</para>
/// <para>Тип аргумента.</para>
/// </typeparam>
template <typename TResult, typename TArgument>
struct ICounter<TResult, TArgument> {
/// <summary>
/// <para>Performs a count.</para>
/// <para>Выполняет подсчёт.</para>
/// </summary>
/// <param name="argument">
/// <para>The argument.</para>
/// <para>Аргумент.</para>
/// </param>
/// <returns>
/// <para>The count result.</para>
/// <para>Результат подсчёта.</para>
/// </returns>
virtual TResult Count(TArgument argument) = 0;

virtual ~ICounter() = default;
Expand Down
16 changes: 16 additions & 0 deletions cpp/Platform.Interfaces/ICounter[TResult].h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,24 @@ namespace Platform::Interfaces {
template <typename...>
struct ICounter;

/// <summary>
/// <para>Defines a counter.</para>
/// <para>Определяет счётчик.</para>
/// </summary>
/// <typeparam name="TResult">
/// <para>The count result type.</para>
/// <para>Тип результата подсчёта.</para>
/// </typeparam>
template <typename TResult>
struct ICounter<TResult> {
/// <summary>
/// <para>Performs a count.</para>
/// <para>Выполняет подсчёт.</para>
/// </summary>
/// <returns>
/// <para>The count result.</para>
/// <para>Результат подсчёта.</para>
/// </returns>
virtual TResult Count() = 0;

virtual ~ICounter() = default;
Expand Down
20 changes: 20 additions & 0 deletions cpp/Platform.Interfaces/ICriterionMatcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,28 @@ namespace Platform::Interfaces {
template <typename...>
struct ICriterionMatcher;

/// <summary>
/// <para>Defines a criterion matcher, that contains a specific method for determining whether the argument matches the criterion or not.</para>
/// <para>Определяет объект который проверяет соответствие критерию и содержит конкретный метод для определения, соответствует ли аргумент критерию или нет.</para>
/// </summary>
/// <typeparam name="TArgument">
/// <para>Argument type.</para>
/// <para>Тип аргумента.</para>
/// </typeparam>
template <typename TArgument>
struct ICriterionMatcher<TArgument> {
/// <summary>
/// <para>Determines whether the argument matches the criterion.</para>
/// <para>Определяет, соответствует ли аргумент критерию.</para>
/// </summary>
/// <param name="argument">
/// <para>The argument.</para>
/// <para>Аргумент.</para>
/// </param>
/// <returns>
/// <para>A value that determines whether the argument matches the criterion.</para>
/// <para>Значение, определяющие соответствует ли аргумент критерию.</para>
/// </returns>
virtual bool IsMatched(TArgument argument) = 0;

virtual ~ICriterionMatcher() = default;
Expand Down
16 changes: 16 additions & 0 deletions cpp/Platform.Interfaces/IFactory.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,24 @@ namespace Platform::Interfaces {
template <typename...>
struct IFactory;

/// <summary>
/// <para>Defines a factory that produces instances of a specific type.</para>
/// <para>Определяет фабрику, которая производит экземпляры определенного типа.</para>
/// </summary>
/// <typeparam name="TProduct">
/// <para>Type of produced instances.</para>
/// <para>Тип производимых экземпляров.</para>
/// </typeparam>
template <typename TProduct>
struct IFactory<TProduct> {
/// <summary>
/// <para>Creates an instance of TProduct type.</para>
/// <para>Создает экземпляр типа TProduct.</para>
/// </summary>
/// <returns>
/// <para>The instance of TProduct type.</para>
/// <para>Экземпляр типа TProduct.</para>
/// </returns>
virtual TProduct Create() = 0;

virtual ~IFactory() = default;
Expand Down
48 changes: 48 additions & 0 deletions cpp/Platform.Interfaces/IProperties.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,58 @@ 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;
Expand Down
12 changes: 12 additions & 0 deletions cpp/Platform.Interfaces/IProperty.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@ namespace Platform::Interfaces {
template <typename...>
struct IProperty;

/// <summary>
/// <para>Defines a specific property operator that is able to get or set values of that property.</para>
/// <para>Определяет оператор определённого свойства, который может получать или устанавливать его значения.</para>
/// </summary>
/// <typeparam name="TObject">
/// <para>Object type.</para>
/// <para>Тип объекта.</para>
/// </typeparam>
/// <typeparam name="TValue">
/// <para>Property value type.</para>
/// <para>Тип значения свойства.</para>
/// </typeparam>
template <typename TObject, typename TValue>
struct IProperty<TObject, TValue> : public ISetter<TValue, TObject>, IProvider<TValue, TObject> {
virtual ~IProperty() = default;
Expand Down
24 changes: 24 additions & 0 deletions cpp/Platform.Interfaces/IProvider[TProvided, TArgument].h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,32 @@ namespace Platform::Interfaces {
template <typename...>
struct IProvider;

/// <summary>
/// <para>Defines the provider of objects/values for which an argument must be specified.</para>
/// <para>Определяет поставщика объектов/значений, для получения которых необходимо указать аргумент.</para>
/// </summary>
/// <typeparam name="TProvided">
/// <para>Type of provided objects/values.</para>
/// <para>Тип предоставляемых объектов/значений.</para>
/// </typeparam>
/// <typeparam name="TArgument">
/// <para>Argument type.</para>
/// <para>Тип аргумента.</para>
/// </typeparam>
template <typename TProvided, typename TArgument>
struct IProvider<TProvided, TArgument> {
/// <summary>
/// <para>Provides an object(s)/value(s).</para>
/// <para>Предоставляет объект(ы)/значение(я).</para>
/// </summary>
/// <param name="argument">
/// <para>The argument required to acquire the object(s)/value(s).</para>
/// <para>Аргумент, необходимый для получения объекта(ов)/значения(ий).</para>
/// </param>
/// <returns>
/// <para>The object(s)/value(s).</para>
/// <para>Объект(ы)/значение(я).</para>
/// </returns>
virtual TProvided Get(TArgument argument) = 0;

virtual ~IProvider() = default;
Expand Down
16 changes: 16 additions & 0 deletions cpp/Platform.Interfaces/IProvider[TProvided].h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,24 @@ namespace Platform::Interfaces {
template <typename...>
struct IProvider;

/// <summary>
/// <para>Defines the provider of objects/values.</para>
/// <para>Определяет поставщика объектов/значений.</para>
/// </summary>
/// <typeparam name="TProvided">
/// <para>Type of provided object/value.</para>
/// <para>Тип предоставляемого объекта/значения.</para>
/// </typeparam>
template <typename TProvided>
struct IProvider<TProvided> {
/// <summary>
/// <para>Provides an object(s)/value(s).</para>
/// <para>Предоставляет объект(ы)/значение(я).</para>
/// </summary>
/// <returns>
/// <para>The object(s)/value(s).</para>
/// <para>Объект(ы)/значение(я).</para>
/// </returns>
virtual TProvided Get() = 0;

virtual ~IProvider() = default;
Expand Down
24 changes: 24 additions & 0 deletions cpp/Platform.Interfaces/ISetter[TValue, TArgument].h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,32 @@ namespace Platform::Interfaces {
template <typename...>
struct ISetter;

/// <summary>
/// <para>Defines an setter that requires an argument to set the passed value as a new state.</para>
/// <para>Определяет установщик, которому для установки переданного значения в качестве нового состояния требуется аргумент.</para>
/// </summary>
/// <typeparam name="TValue">
/// <para>Type of set value.</para>
/// <para>Тип устанавливаемого значения.</para>
/// </typeparam>
/// <typeparam name="TArgument">
/// <para>The argument type.</para>
/// <para>Тип аргумента.</para>
/// </typeparam>
template <typename TValue, typename TArgument>
struct ISetter<TValue, TArgument> {
/// <summary>
/// <para>Sets the value of a specific property in the specified object.</para>
/// <para>Устанавливает значение определённого свойства в указанном объекте.</para>
/// </summary>
/// <param name="argument">
/// <para>The argument.</para>
/// <para>Аргумент.</para>
/// </param>
/// <param name="value">
/// <para>The value.</para>
/// <para>Значение.</para>
/// </param>
virtual void Set(TArgument argument, TValue value) = 0;

virtual ~ISetter() = default;
Expand Down
16 changes: 16 additions & 0 deletions cpp/Platform.Interfaces/ISetter[TValue].h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,24 @@ namespace Platform::Interfaces {
template <typename...>
struct ISetter;

/// <summary>
/// <para>Defines an setter that sets the passed value as a new state.</para>
/// <para>Определяет установщик, который устанавливает переданное значение в качестве нового состояния.</para>
/// </summary>
/// <typeparam name="TValue">
/// <para>Type of set value.</para>
/// <para>Тип устанавливаемого значения.</para>
/// </typeparam>
template <typename TValue>
struct ISetter<TValue> {
/// <summary>
/// <para>Sets the value of a specific property in the specified object.</para>
/// <para>Устанавливает значение определённого свойства в указанном объекте.</para>
/// </summary>
/// <param name="value">
/// <para>The value.</para>
/// <para>Значение.</para>
/// </param>
virtual void Set(TValue value) = 0;

virtual ~ISetter() = default;
Expand Down
Loading