Aspose.Tasks for C++
YearlyRepetitionBase.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="YearlyRepetitionBase.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2024 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include "aspose.tasks.cpp/Recurring/Validators/IValidatorCreator.h"
9 #include "aspose.tasks.cpp/Recurring/Calculators/ICalculatorCreator.h"
10 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
11 
12 namespace Aspose
13 {
14 namespace Tasks
15 {
16 class Calendar;
17 class Duration;
18 class RecurrencePatternValidatorBase;
19 namespace Recurring
20 {
21 namespace Calculators
22 {
23 class RecurrenceDateCalculatorBase;
24 } // namespace Calculators
25 } // namespace Recurring
26 class YearlyRecurrencePattern;
27 } // namespace Tasks
28 } // namespace Aspose
29 
30 namespace Aspose {
31 
32 namespace Tasks {
33 
34 /// <summary>
35 /// Represents a base pattern for yearly day position.
36 /// </summary>
37 class ASPOSE_TASKS_SHARED_CLASS YearlyRepetitionBase : public Aspose::Tasks::Recurring::Validators::IValidatorCreator, public Aspose::Tasks::Recurring::Calculators::ICalculatorCreator
38 {
39  typedef YearlyRepetitionBase ThisType;
40  typedef Aspose::Tasks::Recurring::Validators::IValidatorCreator BaseType;
41  typedef Aspose::Tasks::Recurring::Calculators::ICalculatorCreator BaseType1;
42 
43  typedef ::System::BaseTypesInfo<BaseType, BaseType1> ThisTypeBaseTypesInfo;
44  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
45 
47 
48 protected:
49 
50  /// <summary>
51  /// Initializes a new instance of the <see cref="YearlyRepetitionBase"></see> class.
52  /// </summary>
53  // ReSharper disable once EmptyConstructor
54  ASPOSE_TASKS_SHARED_API YearlyRepetitionBase();
55 
56  ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> GetCalendarInternal();
57  virtual ASPOSE_TASKS_SHARED_API System::SharedPtr<RecurrencePatternValidatorBase> GetValidatorInternal(System::SharedPtr<Calendar> calendar) = 0;
58 
59 private:
60 
61  System::SharedPtr<Recurring::Calculators::RecurrenceDateCalculatorBase> GetCalculator(System::SharedPtr<Calendar> calendar, Duration duration) override;
62  System::SharedPtr<RecurrencePatternValidatorBase> GetValidator(System::SharedPtr<Calendar> calendar) override;
63 
64 };
65 
66 } // namespace Tasks
67 } // namespace Aspose
68 
69 
Represents duration in a project.
Definition: Duration.h:163
Represents the set of parameters are used to create a yearly recurring task in a project.
Definition: YearlyRecurrencePattern.h:37
Represents a base pattern for yearly day position.
Definition: YearlyRepetitionBase.h:38
Definition: Asn.h:13