8 #include <system/type_info.h>
9 #include <system/object_ext.h>
10 #include <system/details/pointer_collection_helpers.h>
11 #include <system/constraints.h>
19 namespace Connectivity
22 class MspAssnBaseLine;
38 template <
typename,
typename>
class FieldItem;
44 class InternalApiProjectWriter;
47 class ProjectGuidPropertyMapper;
55 class BuiltInProjectProperty;
57 template <
typename>
class PropertyContainer;
74 template<
typename T,
typename K>
75 class Key :
public System::Object,
public System::Details::BoxableObjectBase
77 assert_is_cs_struct(K);
80 typedef System::Object BaseType;
82 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
83 RTTI_INFO_TEMPLATE_CLASS(
ThisType, ThisTypeBaseTypesInfo);
87 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectGuidPropertyMapper;
89 friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectWriter;
91 friend class Aspose::Tasks::Connectivity::MspAssn;
92 friend class Aspose::Tasks::Connectivity::MspAssnBaseLine;
93 friend class Aspose::Tasks::Connectivity::MspCal;
94 friend class Aspose::Tasks::Connectivity::MspExtAttr;
95 friend class Aspose::Tasks::Connectivity::MspTsk;
96 friend class Aspose::Tasks::Connectivity::MspTskBaseLine;
97 friend class Aspose::Tasks::Connectivity::MspTskLink;
98 friend class Aspose::Tasks::Connectivity::PmCal;
99 friend class Aspose::Tasks::Connectivity::PmCurr;
100 friend class Aspose::Tasks::Connectivity::PmRsc;
101 friend class Aspose::Tasks::Connectivity::PmRscRate;
102 friend class Aspose::Tasks::Connectivity::PmTaskLink;
103 template<
typename FT0,
typename FT1>
friend class Aspose::Tasks::IO::MSProject::FieldItem;
104 template<
typename FT0,
typename FT1>
friend class Aspose::Tasks::IO::MSProject::FieldItem;
109 template<
typename FT0,
typename FT1>
friend
111 template<
typename FT0,
typename FT1>
friend
121 return (*this).keyType;
124 Key() : keyTypeIndex(0), propCategory(0), keyType(K())
128 void SetTemplateWeakPtr(uint32_t argument)
override
136 System::Details::CollectionHelpers::SetWeakPointer(keyType);
144 int32_t get_KeyTypeIndex()
const
146 return (*this).keyTypeIndex;
149 uint8_t get_PropCategory()
const
151 return (*this).propCategory;
154 System::String get_KeyName()
156 return System::ObjectExt::ToString((*this).keyType);
159 Key(K keyType) : Key(keyType, 0)
163 MEMBER_FUNCTION_MAKE_OBJECT(Key, CODEPORTING_ARGS(K keyType), CODEPORTING_ARGS(keyType));
165 Key(K keyType, uint8_t category) : keyTypeIndex(0), propCategory(0), keyType(K())
167 (*this).keyType = keyType;
168 (*this).propCategory = category;
169 (*this).keyTypeIndex = (uint8_t)keyType;
172 MEMBER_FUNCTION_MAKE_OBJECT(Key, CODEPORTING_ARGS(K keyType, uint8_t category), CODEPORTING_ARGS(keyType,category));
173 template <
typename TC>
174 bool IsEqual(Key<TC, K> key)
176 return (*this).get_KeyTypeIndex() == key.get_KeyTypeIndex() && System::ObjectExt::GetType<T>() == System::ObjectExt::GetType<TC>();
179 #ifdef ASPOSE_GET_SHARED_MEMBERS
180 void GetSharedMembers(System::Object::shared_members_type& result)
const override
182 System::Object::GetSharedMembers(result);
184 result.Add(
"Aspose::Tasks::Key::keyType", this->keyType);
192 uint8_t keyTypeIndex;
193 uint8_t propCategory;
195 static System::TypeInfo& UnderlyingType()
197 static System::TypeInfo value;
198 static std::once_flag once;
199 std::call_once(once, []
201 value = System::Enum<K>::GetUnderlyingType();
210 template<
typename T,
typename K>
211 bool operator ==(Key<T, K> k1, Key<T, K> k2)
213 return System::ObjectExt::Equals(k1.keyType, k2.keyType);
216 template<
typename T,
typename K>
217 bool operator !=(Key<T, K> k1, Key<T, K> k2)
219 return !System::ObjectExt::Equals(k1.keyType, k2.keyType);
Represents properties of ResourceAssignment object.
Definition: Asn.h:44
Represents a property key of a class of the specified type. An instance of this class is used when ge...
Definition: Key.h:76
K get_KeyType() const
Gets the key of the property.
Definition: Key.h:119
Represents supported properties of Project object.
Definition: Prj.h:49
Represents a built-in property.
Definition: BuiltInProjectProperty.h:37
Represents property container.
Definition: PropertyContainer.h:27
Represents supported properties of Resource object.
Definition: Rsc.h:45
Represents a task in a project.
Definition: Task.h:384
Represents properties of Task object.
Definition: Tsk.h:46