8 #include <system/string.h>
9 #include <system/iequatable.h>
10 #include <system/guid.h>
13 #include "aspose.tasks.cpp/NullableBool.h"
14 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
20 namespace Calculations
22 class TaskSlackCalculator;
24 namespace Connectivity
26 class MpdTaskLinkMapper;
27 class MspTaskLinksMapper;
28 class PmTaskRelationMapper;
34 class HtmlTaskTableReader;
45 class MPPTaskLinksReader;
47 namespace PrimaveraXml
49 class PrimaveraRelationshipNodeReader;
57 class TaskLinkEntityMapper;
58 class TaskLinkToRawValuesMapper;
64 class XerRelationReader;
68 class TaskLinksNodeReader;
69 class TaskLinksNodeWriter;
74 class PrimaveraRelationshipNodeWriter;
75 class XerRelationTable;
79 class ConstraintSolver;
80 class DummyRelationsCollectorBase;
81 class TopologicalSort;
82 class TopsortCriticalPath;
85 class TaskLinkCollection;
87 enum class TaskLinkType;
88 class TaskWarningCalculator;
89 enum class TimeUnitType : int8_t;
90 namespace Visualization
92 class ApsFFVerticalLinkBuilder;
93 class ApsFSVerticalLinkBuilder;
94 class ApsLinksBuilder;
95 class ApsSFVerticalLinkBuilder;
96 class ApsSSVerticalLinkBuilder;
97 class TaskToColumnText;
103 namespace Collections
107 template <
typename>
class Stack;
120 class ASPOSE_TASKS_SHARED_CLASS
TaskLink final :
public System::IEquatable<System::SharedPtr<Aspose::Tasks::TaskLink>>
123 typedef System::IEquatable<System::SharedPtr<Aspose::Tasks::TaskLink>> BaseType;
125 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
126 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
128 friend class Aspose::Tasks::Calculations::TaskSlackCalculator;
129 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraRelationshipNodeReader;
130 friend class Aspose::Tasks::Scheduling::DummyRelationsCollectorBase;
132 friend class Aspose::Tasks::TaskLinkTable;
133 friend class Aspose::Tasks::TaskLinkTable;
134 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskLinkToRawValuesMapper;
135 friend class Aspose::Tasks::Connectivity::MpdTaskLinkMapper;
136 friend class Aspose::Tasks::Connectivity::MspTaskLinksMapper;
137 friend class Aspose::Tasks::Connectivity::PmTaskRelationMapper;
138 friend class Aspose::Tasks::IO::Html::HtmlTaskTableReader;
139 friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
140 friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
141 friend class Aspose::Tasks::IO::MSProject::MPPTaskLinksReader;
142 friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
143 friend class Aspose::Tasks::IO::Mpx::MpxReader;
144 friend class Aspose::Tasks::IO::Xer::XerRelationReader;
145 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::TaskLinkEntityMapper;
146 friend class Aspose::Tasks::IO::Xml::TaskLinksNodeReader;
147 friend class Aspose::Tasks::IO::Xml::TaskLinksNodeWriter;
148 friend class Aspose::Tasks::TaskWarningCalculator;
149 friend class Aspose::Tasks::Saving::XerRelationTable;
150 friend class Aspose::Tasks::Saving::PrimaveraRelationshipNodeWriter;
151 friend class Aspose::Tasks::Scheduling::ConstraintSolver;
152 friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
153 friend class Aspose::Tasks::Scheduling::TopologicalSort;
154 friend class Aspose::Tasks::Scheduling::TopologicalSort;
156 friend class Aspose::Tasks::Visualization::ApsFFVerticalLinkBuilder;
157 friend class Aspose::Tasks::Visualization::ApsLinksBuilder;
158 friend class Aspose::Tasks::Visualization::ApsFSVerticalLinkBuilder;
159 friend class Aspose::Tasks::Visualization::ApsSFVerticalLinkBuilder;
160 friend class Aspose::Tasks::Visualization::ApsSSVerticalLinkBuilder;
161 friend class Aspose::Tasks::Visualization::TaskToColumnText;
168 ASPOSE_TASKS_SHARED_API
bool get_IsCrossProject()
const;
172 ASPOSE_TASKS_SHARED_API
void set_IsCrossProject(
bool value);
176 ASPOSE_TASKS_SHARED_API System::String get_CrossProjectName()
const;
180 ASPOSE_TASKS_SHARED_API
void set_CrossProjectName(
const System::String& value);
184 ASPOSE_TASKS_SHARED_API int32_t get_LinkLag()
const;
188 ASPOSE_TASKS_SHARED_API
void set_LinkLag(int32_t value);
196 ASPOSE_TASKS_SHARED_API System::TimeSpan get_LinkLagTimeSpan();
204 ASPOSE_TASKS_SHARED_API
void set_LinkLagTimeSpan(System::TimeSpan value);
208 ASPOSE_TASKS_SHARED_API TimeUnitType get_LagFormat()
const;
212 ASPOSE_TASKS_SHARED_API
void set_LagFormat(TimeUnitType value);
216 ASPOSE_TASKS_SHARED_API System::SharedPtr<Task> get_PredTask()
const;
220 ASPOSE_TASKS_SHARED_API
void set_PredTask(
const System::SharedPtr<Task>& value);
224 ASPOSE_TASKS_SHARED_API System::SharedPtr<Task> get_SuccTask()
const;
228 ASPOSE_TASKS_SHARED_API
void set_SuccTask(
const System::SharedPtr<Task>& value);
232 ASPOSE_TASKS_SHARED_API TaskLinkType get_LinkType()
const;
236 ASPOSE_TASKS_SHARED_API
void set_LinkType(TaskLinkType value);
242 ASPOSE_TASKS_SHARED_API int32_t GetHashCode()
const override;
248 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<TaskLink> other)
override;
254 ASPOSE_TASKS_SHARED_API System::String ToString()
const override;
261 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
265 ASPOSE_TASKS_SHARED_API
NullableBool get_NullableCrossProject()
const;
266 ASPOSE_TASKS_SHARED_API
void set_NullableCrossProject(
NullableBool value);
270 ASPOSE_TASKS_SHARED_API
bool get_Enabled()
const;
274 ASPOSE_TASKS_SHARED_API
void set_Enabled(
bool value);
275 ASPOSE_TASKS_SHARED_API
bool get_IsDummy()
const;
276 ASPOSE_TASKS_SHARED_API int32_t get_Uid()
const;
277 ASPOSE_TASKS_SHARED_API
void set_Uid(int32_t value);
278 ASPOSE_TASKS_SHARED_API System::Guid get_Guid()
const;
279 ASPOSE_TASKS_SHARED_API
void set_Guid(System::Guid value);
280 ASPOSE_TASKS_SHARED_API
bool get_IsNegativeLag();
281 ASPOSE_TASKS_SHARED_API
bool get_PredecessorFinishLinked();
295 ASPOSE_TASKS_SHARED_API
TaskLink(
const System::SharedPtr<Task>& predTask,
const System::SharedPtr<Task>& succTask, TaskLinkType linkType);
297 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
TaskLink, CODEPORTING_ARGS(
const System::SharedPtr<Task>& predTask,
const System::SharedPtr<Task>& succTask, TaskLinkType linkType));
299 ASPOSE_TASKS_SHARED_API
TaskLink(
const System::SharedPtr<Task>& predTask,
const System::SharedPtr<Task>& succTask, TaskLinkType linkType,
bool isDummy);
301 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
TaskLink, CODEPORTING_ARGS(
const System::SharedPtr<Task>& predTask,
const System::SharedPtr<Task>& succTask, TaskLinkType linkType,
bool isDummy));
302 ASPOSE_TASKS_SHARED_API
void AddRelation();
303 ASPOSE_TASKS_SHARED_API
void RemoveRelation();
304 ASPOSE_TASKS_SHARED_API System::TimeSpan GetLagDuration()
const;
305 ASPOSE_TASKS_SHARED_API System::String GetTaskLinkString(int32_t taskUid);
307 virtual ASPOSE_TASKS_SHARED_API ~
TaskLink();
309 #ifdef ASPOSE_GET_SHARED_MEMBERS
310 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
316 System::Guid internalGuid;
318 TaskLinkType linkType;
319 System::WeakPtr<Task> predTask;
320 System::WeakPtr<Task> succTask;
322 System::String pr_CrossProjectName;
324 TimeUnitType pr_LagFormat;
327 System::Guid pr_Guid;
329 bool get_Invalid()
const;
331 System::String GetLagString()
const;
332 void CheckTwiceLinked();
333 void CheckCircuits();
334 void CheckCircuits(
const System::SharedPtr<Task>& temp,
const System::SharedPtr<System::Collections::Generic::Stack<System::SharedPtr<Task>>>& predecessors);