Aspose.Tasks for C++
Duration.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="Duration.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 // ReSharper disable StringLiteralTypo
8 
9 #include <system/timespan.h>
10 #include <system/object_ext.h>
11 #include <system/iequatable.h>
12 #include <system/array.h>
13 #include <cstdint>
14 
15 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
16 
17 namespace Aspose
18 {
19 namespace Tasks
20 {
21 namespace Calculations
22 {
23 class ResourceAssignmentCalculator;
24 class ResourceAssignmentPeakCalculator;
25 class TaskEarlyLateDatesCalculator;
26 class TaskProgressCalculator;
27 class TaskStatusCalculator;
28 class TaskWorkCalculator;
29 } // namespace Calculations
30 namespace Connectivity
31 {
32 class DbTypeConverter;
33 class MpdAssignmentMapper;
34 class MpdTaskMapper;
35 class MspAssignmentMapper;
36 class MspDbTypeConverter;
37 class MspTaskBaseLineMapper;
38 class MspTaskMapper;
39 class PmDbTypeConverter;
40 } // namespace Connectivity
41 class ExtendedAttribute;
42 namespace IO
43 {
44 namespace Html
45 {
46 class HtmlReadingUtils;
47 class HtmlResourceAssignmentTableReader;
48 class HtmlTaskBaseLineTableReader;
49 class HtmlTaskTableReader;
50 } // namespace Html
51 namespace Mpx
52 {
53 class MpxUtils;
54 } // namespace Mpx
55 namespace MSProject
56 {
57 class CustomFieldTypeReader;
58 class ExtendedAttributeValueConverter;
59 template <typename, typename> class FieldItem;
60 class GanttBarStyleCalculator;
61 class MPP12OutlineCodeDefinitionReader;
62 class MPP14OutlineCodeDefinitionReader;
63 class MPP14ResourceAssignmentWriter;
64 class MPP14TaskReader;
65 class MPP9ExtendedAttributeDefinitionReader;
66 class MPPRecurringInfoReader;
67 } // namespace MSProject
68 namespace PrimaveraXml
69 {
70 class P6XmlUtils;
71 class PrimaveraActivityNodeReader;
72 class PrimaveraAssignmentsNodeReader;
73 } // namespace PrimaveraXml
74 namespace Pwa
75 {
76 namespace InternalApi
77 {
78 class ExtendedAttributeValueReader;
79 namespace Mapping
80 {
81 class AssignmentDurationPropertyMapper;
82 class BaseDurationPropertyMapper;
83 template <typename> class ProjectCoreEntityMapperBase;
84 class ProjectTasksMapper;
85 class TaskDurationPropertyMapper;
86 class TaskLinkEntityMapper;
87 } // namespace Mapping
88 class PropertyValueReader;
89 } // namespace InternalApi
90 } // namespace Pwa
91 namespace Xer
92 {
93 class XerAssignmentReader;
94 class XerRecordValueReader;
95 } // namespace Xer
96 namespace Xml
97 {
98 class ExtendedAttributeNodeReader;
99 class OutlineCodeDefinitionReader;
100 class ResourceAssignmentNodeReader;
101 class ResourceAssignmentNodeWriter;
102 class TaskNodeReader;
103 class TaskNodeWriter;
104 } // namespace Xml
105 } // namespace IO
106 namespace Leveling
107 {
108 class ResourceLeveler;
109 } // namespace Leveling
110 class OutlineValue;
111 class PercentCompleteCalculator;
112 class ProjDurValue;
113 class Project;
114 class ProjectState;
115 class ProjectWorkUpdater;
116 class ResourceAssignment;
117 namespace RiskAnalysis
118 {
119 class RndDurationAlgorithm;
120 } // namespace RiskAnalysis
121 namespace Rollup
122 {
123 class DurationExtendedAttributeComparer;
124 } // namespace Rollup
125 namespace Saving
126 {
127 class MpxSavingUtils;
128 class MpxWriter;
129 } // namespace Saving
130 class Task;
131 class TaskPlanner;
132 class TaskPlannerAssignmentManager;
133 enum class TimeUnitType : int8_t;
134 namespace Util
135 {
136 namespace Fields
137 {
138 class RscFieldToValue;
139 class TaskFieldToValue;
140 } // namespace Fields
141 class PrimaveraTasksProcessor;
142 } // namespace Util
143 } // namespace Tasks
144 } // namespace Aspose
145 namespace System
146 {
147 namespace Globalization
148 {
149 class CultureInfo;
150 } // namespace Globalization
151 class IFormatProvider;
152 } // namespace System
153 
154 namespace Aspose {
155 
156 namespace Tasks {
157 
158 /// <summary>
159 /// Represents duration in a project.
160 /// </summary>
161 class ASPOSE_TASKS_SHARED_CLASS Duration : public System::IEquatable<Aspose::Tasks::Duration>, public System::Details::BoxableObjectBase
162 {
163  typedef Duration ThisType;
164  typedef System::IEquatable<Aspose::Tasks::Duration> BaseType;
165 
166  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
167  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
168 
169  friend class Aspose::Tasks::Calculations::TaskEarlyLateDatesCalculator;
170  friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
171  friend class Aspose::Tasks::Calculations::ResourceAssignmentPeakCalculator;
172  friend class Aspose::Tasks::Calculations::TaskProgressCalculator;
173  friend class Aspose::Tasks::Calculations::TaskStatusCalculator;
174  friend class Aspose::Tasks::Calculations::TaskWorkCalculator;
175  friend class Aspose::Tasks::IO::MSProject::GanttBarStyleCalculator;
176  friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
177  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraActivityNodeReader;
178  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraAssignmentsNodeReader;
179  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::BaseDurationPropertyMapper;
180  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::AssignmentDurationPropertyMapper;
181  friend class Aspose::Tasks::IO::Xer::XerRecordValueReader;
183  friend class Aspose::Tasks::Project;
185  friend class Aspose::Tasks::Task;
186  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskDurationPropertyMapper;
188  friend class Aspose::Tasks::ProjDurValue;
189  friend class Aspose::Tasks::Connectivity::DbTypeConverter;
190  friend class Aspose::Tasks::Connectivity::MpdAssignmentMapper;
191  friend class Aspose::Tasks::Connectivity::MspDbTypeConverter;
192  friend class Aspose::Tasks::Connectivity::MpdTaskMapper;
193  friend class Aspose::Tasks::Connectivity::MspAssignmentMapper;
194  friend class Aspose::Tasks::Connectivity::MspTaskBaseLineMapper;
195  friend class Aspose::Tasks::Connectivity::MspTaskMapper;
196  friend class Aspose::Tasks::Connectivity::PmDbTypeConverter;
197  friend class Aspose::Tasks::IO::Html::HtmlReadingUtils;
198  friend class Aspose::Tasks::IO::Html::HtmlResourceAssignmentTableReader;
199  friend class Aspose::Tasks::IO::Html::HtmlTaskBaseLineTableReader;
200  friend class Aspose::Tasks::IO::Html::HtmlTaskTableReader;
201  friend class Aspose::Tasks::IO::MSProject::CustomFieldTypeReader;
202  friend class Aspose::Tasks::IO::MSProject::ExtendedAttributeValueConverter;
203  template<typename FT0, typename FT1> friend class Aspose::Tasks::IO::MSProject::FieldItem;
204  template<typename FT0, typename FT1> friend class Aspose::Tasks::IO::MSProject::FieldItem;
205  friend class Aspose::Tasks::IO::MSProject::MPP12OutlineCodeDefinitionReader;
206  friend class Aspose::Tasks::IO::MSProject::MPP14OutlineCodeDefinitionReader;
207  friend class Aspose::Tasks::IO::MSProject::MPP14TaskReader;
208  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceAssignmentWriter;
209  friend class Aspose::Tasks::IO::MSProject::MPP9ExtendedAttributeDefinitionReader;
210  friend class Aspose::Tasks::IO::MSProject::MPPRecurringInfoReader;
211  friend class Aspose::Tasks::IO::Mpx::MpxUtils;
212  friend class Aspose::Tasks::IO::Xer::XerAssignmentReader;
213  friend class Aspose::Tasks::IO::Pwa::InternalApi::ExtendedAttributeValueReader;
214  template<typename FT0> friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCoreEntityMapperBase;
215  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectTasksMapper;
216  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskLinkEntityMapper;
217  friend class Aspose::Tasks::IO::Pwa::InternalApi::PropertyValueReader;
218  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeNodeReader;
219  friend class Aspose::Tasks::IO::Xml::OutlineCodeDefinitionReader;
220  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentNodeReader;
221  friend class Aspose::Tasks::IO::Xml::ResourceAssignmentNodeWriter;
222  friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
223  friend class Aspose::Tasks::IO::Xml::TaskNodeWriter;
224  friend class Aspose::Tasks::OutlineValue;
225  friend class Aspose::Tasks::ProjectState;
226  friend class Aspose::Tasks::TaskPlannerAssignmentManager;
227  friend class Aspose::Tasks::TaskPlanner;
228  friend class Aspose::Tasks::PercentCompleteCalculator;
229  friend class Aspose::Tasks::ProjectWorkUpdater;
230  friend class Aspose::Tasks::RiskAnalysis::RndDurationAlgorithm;
231  friend class Aspose::Tasks::Rollup::DurationExtendedAttributeComparer;
232  friend class Aspose::Tasks::Saving::MpxSavingUtils;
233  friend class Aspose::Tasks::Saving::MpxWriter;
234  friend class Aspose::Tasks::Util::Fields::RscFieldToValue;
235  friend class Aspose::Tasks::Util::Fields::TaskFieldToValue;
236  friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
237  friend ASPOSE_TASKS_SHARED_API bool operator ==(Duration a, Duration b);
238  friend ASPOSE_TASKS_SHARED_API bool operator !=(Duration a, Duration b);
239 
240 public:
241 
242  /// <summary>
243  /// Gets <see cref="TimeSpan"></see> instance of this Duration object.
244  /// <value>The TimeSpan instance of this Duration object.</value>
245  /// </summary>
246  ASPOSE_TASKS_SHARED_API System::TimeSpan get_TimeSpan() const;
247  /// <summary>
248  /// Gets time unit type for this object.
249  /// <value>The time unit type of this Duration instance.</value>
250  /// </summary>
251  ASPOSE_TASKS_SHARED_API TimeUnitType get_TimeUnit() const;
252  /// <summary>
253  /// Gets a value indicating whether time unit is estimated.
254  /// <value>The flag which determines whether this Duration instance is estimated.</value>
255  /// </summary>
256  ASPOSE_TASKS_SHARED_API bool get_IsEstimated() const;
257  /// <summary>
258  /// Gets a value indicating whether time unit is elapsed.
259  /// <value>The flag which determines whether this Duration instance is elapsed.</value>
260  /// </summary>
261  ASPOSE_TASKS_SHARED_API bool get_IsElapsed() const;
262 
263  /// <summary>
264  /// Converts the specified string to the instance of <see cref="Duration"></see> struct.
265  /// </summary>
266  /// <param name="p">the specified instance of <see cref="Project"></see> class to convert duration for.</param>
267  /// <param name="value">the specified string to convert.</param>
268  /// <returns>Returns the converted instance of <see cref="Duration"></see> struct.</returns>
269  static ASPOSE_TASKS_SHARED_API Duration Parse(const System::SharedPtr<Project>& p, const System::String& value);
270  /// <summary>
271  /// Parses duration string in format "PT--H--M--S--".
272  /// </summary>
273  /// <param name="value">the specified string to parse.</param>
274  /// <returns>returns parsed instance of the <see cref="TimeSpan"></see> struct.</returns>
275  static ASPOSE_TASKS_SHARED_API System::TimeSpan ParseTimeSpan(const System::String& value);
276  /// <summary>
277  /// Converts Duration object to <see cref="double"></see> value.
278  /// </summary>
279  /// <returns>Converted value.</returns>
280  ASPOSE_TASKS_SHARED_API double ToDouble();
281  /// <summary>
282  /// Converts Duration object to another duration with specified time units.
283  /// </summary>
284  /// <param name="timeUnitType">the specified time unit type.</param>
285  /// <returns>returns new duration with the specified unit type.</returns>
286  ASPOSE_TASKS_SHARED_API Duration Convert(TimeUnitType timeUnitType);
287  /// <summary>
288  /// Adds specified duration to this duration.
289  /// </summary>
290  /// <param name="d">specified <see cref="Duration"></see> to add to this instance.</param>
291  /// <returns>New duration object that represents the value of this instance plus the specified duration value.</returns>
292  ASPOSE_TASKS_SHARED_API Duration Add(Duration d);
293  /// <summary>
294  /// Adds specified double value to this duration.
295  /// </summary>
296  /// <param name="val">the specified <see cref="double"></see> value to add to this instance.</param>
297  /// <returns>New duration object that represents the value of this instance plus the specified duration value.</returns>
298  ASPOSE_TASKS_SHARED_API Duration Add(double val);
299  /// <summary>
300  /// Subtracts specified duration from this duration instance.
301  /// </summary>
302  /// <param name="d">the specified <see cref="Duration"></see> instance to subtract from this instance.</param>
303  /// <returns>New duration object that represents the value of this instance minus the specified duration value.</returns>
304  ASPOSE_TASKS_SHARED_API Duration Subtract(Duration d);
305  /// <summary>
306  /// Subtracts specified double value from this duration instance.
307  /// </summary>
308  /// <param name="val">specified <see cref="double"></see> value to subtract from this instance.</param>
309  /// <returns>New duration object that represents the value of this instance minus the specified duration value.</returns>
310  ASPOSE_TASKS_SHARED_API Duration Subtract(double val);
311  /// <summary>
312  /// Returns a value indicating whether this instance is equal to a specified object.
313  /// </summary>
314  /// <param name="other">The object to compare with this instance.</param>
315  /// <returns>Returns <b>True</b> if other Duration instance has the same TimeSpan and TimeUnit values as this instance; otherwise, <b>false</b>.</returns>
316  ASPOSE_TASKS_SHARED_API bool Equals(Duration other) override;
317  /// <summary>
318  /// Returns a value indicating whether this instance is equal to a specified object.
319  /// </summary>
320  /// <param name="obj">The object to compare with this instance.</param>
321  /// <returns><b>True</b> if the specified object is a Duration that has the same TimeSpan and TimeUnit values as this instance; otherwise, <b>false</b>.</returns>
322  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
323  /// <summary>
324  /// Returns a hash code value for this object.
325  /// </summary>
326  /// <returns>returns a hash code value for this duration instance.</returns>
327  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
328 
329  ASPOSE_TASKS_SHARED_API Duration();
330 
331  /// <summary>
332  /// Returns a string representation of this instance.
333  /// </summary>
334  /// <returns>a string representation of this instance.</returns>
335  ASPOSE_TASKS_SHARED_API System::String ToString() const override;
336 
337 protected:
338 
339  ASPOSE_TASKS_SHARED_API double get_TotalMinutes();
340  ASPOSE_TASKS_SHARED_API bool get_IsZeroDuration();
341 
342  /// <summary>
343  /// Initializes a new instance of the <see cref="Duration"></see> struct with a specified TimeSpan value and TimeUnitType.
344  /// </summary>
345  /// <param name="project">the specified instance of the <see cref="Project"></see> to get settings from.</param>
346  /// <param name="timeSpan">the specified <see cref="TimeSpan"></see></param>
347  /// <param name="timeUnit">the specified <see cref="TimeUnit"></see></param>
348  ASPOSE_TASKS_SHARED_API Duration(const System::SharedPtr<Project>& project, System::TimeSpan timeSpan, TimeUnitType timeUnit);
349 
350  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Duration, CODEPORTING_ARGS(const System::SharedPtr<Project>& project, System::TimeSpan timeSpan, TimeUnitType timeUnit));
351 
352  /// <summary>
353  /// Initializes a new instance of the <see cref="Duration"></see> struct with a specified double value and TimeUnitType.
354  /// </summary>
355  /// <param name="project">the specified instance of the <see cref="Project"></see> to get settings from.</param>
356  /// <param name="d">the specified double value.</param>
357  /// <param name="timeUnit">the specified <see cref="TimeUnit"></see></param>
358  /// <param name="setUndefinedTimeUnit">The flag to set undefined value.</param>
359  ASPOSE_TASKS_SHARED_API Duration(const System::SharedPtr<Project>& project, double d, TimeUnitType timeUnit, bool setUndefinedTimeUnit);
360 
361  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Duration, CODEPORTING_ARGS(const System::SharedPtr<Project>& project, double d, TimeUnitType timeUnit, bool setUndefinedTimeUnit));
362 
363  /// <summary>
364  /// Initializes a new instance of the <see cref="Duration"></see> struct with a specified double value and TimeUnitType.
365  /// </summary>
366  /// <param name="project">the specified instance of the <see cref="Project"></see> to get settings from.</param>
367  /// <param name="d">the specified double value.</param>
368  /// <param name="timeUnit">the specified <see cref="TimeUnit"></see></param>
369  ASPOSE_TASKS_SHARED_API Duration(const System::SharedPtr<Project>& project, double d, TimeUnitType timeUnit);
370 
371  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Duration, CODEPORTING_ARGS(const System::SharedPtr<Project>& project, double d, TimeUnitType timeUnit));
372  ASPOSE_TASKS_SHARED_API System::String ToString(const System::SharedPtr<System::Globalization::CultureInfo>& cultureInfo);
373  /// <summary>
374  /// Converts the specified string to the instance of <see cref="Duration"></see> struct.
375  /// </summary>
376  /// <param name="p">the specified instance of <see cref="Project"></see> class to convert duration for.</param>
377  /// <param name="value">the specified string to convert.</param>
378  /// <param name="formatProvider">An object that supplies culture-specific formatting information about <paramref name="value"></paramref>.</param>
379  /// <returns>Returns the converted instance of <see cref="Duration"></see> struct.</returns>
380  static ASPOSE_TASKS_SHARED_API Duration Parse(const System::SharedPtr<Project>& p, System::String value, const System::SharedPtr<System::IFormatProvider>& formatProvider);
381  /// <summary>
382  /// Returns total minutes multiplied by 10.
383  /// </summary>
384  /// <returns>Total minutes multiplied by 10.</returns>
385  ASPOSE_TASKS_SHARED_API int32_t ToInt();
386  /// <summary>
387  /// Converts integer value to duration instance and returns converted duration instance.
388  /// </summary>
389  /// <param name="project">the specified project.</param>
390  /// <param name="i">the specified integer value.</param>
391  /// <returns>returns converted duration instance.</returns>
392  static ASPOSE_TASKS_SHARED_API Duration FromInt(const System::SharedPtr<Project>& project, int32_t i);
393  /// <summary>
394  /// Converts integer value to duration instance with the specified time units.
395  /// </summary>
396  /// <param name="project">the specified project.</param>
397  /// <param name="i">the specified integer value.</param>
398  /// <param name="timeUnit">the specified time unit type.</param>
399  /// <returns>returns converted duration instance.</returns>
400  static ASPOSE_TASKS_SHARED_API Duration FromInt(const System::SharedPtr<Project>& project, int32_t i, TimeUnitType timeUnit);
401  /// <summary>
402  /// Returns this instance as variance.
403  /// </summary>
404  /// <returns>returns this instance as variance.</returns>
405  ASPOSE_TASKS_SHARED_API double ToVariance();
406  /// <summary>
407  /// Converts variance to duration instance.
408  /// </summary>
409  /// <param name="project">the specified project.</param>
410  /// <param name="variance">the specified variance.</param>
411  /// <returns>returns duration instance which was converted from variance.</returns>
412  static ASPOSE_TASKS_SHARED_API Duration FromVariance(const System::SharedPtr<Project>& project, double variance);
413  /// <summary>
414  /// Converts TimeSpan instance to duration instance with day time units.
415  /// </summary>
416  /// <param name="project">the specified project for the instance of the <see cref="Duration"></see> class.</param>
417  /// <param name="timeSpan">the specified TimeSpan instance.</param>
418  /// <param name="type">the specified TimeUnitType instance.</param>
419  /// <returns>returns converted duration instance with day time units.</returns>
420  static ASPOSE_TASKS_SHARED_API Duration FromTimeSpan(const System::SharedPtr<Project>& project, System::TimeSpan timeSpan, TimeUnitType type);
421  static ASPOSE_TASKS_SHARED_API Duration ChangeTimeUnit(Duration duration, TimeUnitType timeUnit);
422  static ASPOSE_TASKS_SHARED_API Duration ChangeTimeSpan(Duration duration, System::TimeSpan timeSpan);
423  static ASPOSE_TASKS_SHARED_API Duration ChangeIsEstimated(Duration duration, bool isEstimated);
424  static ASPOSE_TASKS_SHARED_API Duration Add(Duration duration, System::TimeSpan timeSpan);
425  #ifdef ASPOSE_GET_SHARED_MEMBERS
426  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
427  #endif
428 
429 
430 private:
431 
432  System::WeakPtr<Project> project;
433  System::TimeSpan pr_TimeSpan;
434 
435  /// <summary>
436  /// Gets <see cref="TimeSpan"></see> instance of this Duration object.
437  /// <value>The TimeSpan instance of this Duration object.</value>
438  /// </summary>
439  ASPOSE_TASKS_SHARED_API void set_TimeSpan(System::TimeSpan value);
440 
441  TimeUnitType pr_TimeUnit;
442 
443  /// <summary>
444  /// Gets time unit type for this object.
445  /// <value>The time unit type of this Duration instance.</value>
446  /// </summary>
447  ASPOSE_TASKS_SHARED_API void set_TimeUnit(TimeUnitType value);
448 
449  static System::ArrayPtr<System::String>& DurationLabels();
450  System::String ToString_NonConst();
451  static TimeUnitType GetTimeUnitType(const System::String& str);
452  static TimeUnitType ParseAsPercent(const System::String& s);
453  static bool TryParseAsDate(const System::String& s, TimeUnitType& type);
454  static TimeUnitType SelectWithModifier(bool isEstimated, bool isElapsed, TimeUnitType both, TimeUnitType estimated, TimeUnitType elapsed, TimeUnitType withoutModifiers);
455  static System::String GetUnit(System::String s, bool& isEstimated, bool& isElapsed);
456  static bool IsMinute(const System::String& unit);
457  static bool IsHour(const System::String& unit);
458  static bool IsDay(const System::String& s);
459  static bool IsWeek(const System::String& s);
460  static bool IsMonth(const System::String& unit);
461  static bool IsYear(const System::String& unit);
462  System::String GetDurationUnit(const System::String& dur, const System::String& abbr, bool addSpaceBeforeLabel) const;
463  bool GetAddSpaceBeforeLabel();
464 
465 };
466 
467 ASPOSE_TASKS_SHARED_API bool operator ==(Duration a, Duration b);
468 ASPOSE_TASKS_SHARED_API bool operator !=(Duration a, Duration b);
469 
470 } // namespace Tasks
471 } // namespace Aspose
472 
473 namespace System { template<> struct IsBoxable<Aspose::Tasks::Duration> : std::true_type {}; }
474 
475 
476 
Contains resource leveling methods.
Definition: ResourceLeveler.h:45
Represents a task in a project.
Definition: Task.h:387
Represents an outline value.
Definition: OutlineValue.h:78
Definition: Asn.h:12
Represents extended attributes.
Definition: ExtendedAttribute.h:137
Represents duration in a project.
Definition: Duration.h:161
Represents a project.
Definition: Project.h:550
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:225