OutputIntents.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 #include <system/collections/ienumerator.h>
5 #include <system/collections/icollection.h>
6 #include <system/array.h>
7 #include <cstdint>
8 
9 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
10 
11 namespace Aspose
12 {
13 namespace Pdf
14 {
15 class Document;
16 namespace Engine
17 {
18 namespace Data
19 {
20 class IPdfArray;
21 class IPdfPrimitive;
22 } // namespace Data
23 class IPdfDocument;
24 } // namespace Engine
25 class OutputIntent;
26 } // namespace Pdf
27 } // namespace Aspose
28 namespace System
29 {
30 namespace Collections
31 {
32 namespace Generic
33 {
34 template <typename, typename> class Dictionary;
35 template <typename> class HashSet;
36 } // namespace Generic
37 } // namespace Collections
38 } // namespace System
39 
40 namespace Aspose {
41 
42 namespace Pdf {
43 
47 class ASPOSE_PDF_SHARED_CLASS OutputIntents final : public System::Collections::Generic::ICollection<System::SharedPtr<Aspose::Pdf::OutputIntent>>
48 {
49  typedef OutputIntents ThisType;
51 
52  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
53  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
54 
55  friend class Aspose::Pdf::Document;
56 
57 protected:
58 
59  class OutputIntentsEnumerator final : public System::Collections::Generic::IEnumerator<System::SharedPtr<Aspose::Pdf::OutputIntent>>
60  {
61  typedef OutputIntentsEnumerator ThisType;
63 
64  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
65  RTTI_INFO_DECL();
66  CODEPORTING_ENUMERATOR_ITERATOR_METHODS_DECLARATION(CODEPORTING_ARGS(System::SharedPtr<OutputIntent>), CODEPORTING_NO_API_KEYWORD);
67 
68  public:
69 
70  const System::SharedPtr<OutputIntent>& get_Current() const override;
71 
73 
74  void Dispose() override;
75  bool MoveNext() override;
76  void Reset() override;
77 
78  private:
79 
80  System::SharedPtr<OutputIntents> _outputIntents;
81  int32_t _index;
82 
83  bool MoveNextImplementation();
84  System::SharedPtr<OutputIntent>* GetCurrentElementPointer();
85 
86  };
87 
88 
89 public:
90 
94  ASPOSE_PDF_SHARED_API int32_t get_Count() const override;
98  ASPOSE_PDF_SHARED_API bool get_IsReadOnly() const override;
99 
108  ASPOSE_PDF_SHARED_API void Add(const System::SharedPtr<OutputIntent>& item) override;
112  ASPOSE_PDF_SHARED_API void Clear() override;
120  ASPOSE_PDF_SHARED_API bool Contains(const System::SharedPtr<OutputIntent>& item) const override;
136  ASPOSE_PDF_SHARED_API void CopyTo(System::ArrayPtr<System::SharedPtr<OutputIntent>> array, int32_t arrayIndex) override;
150  ASPOSE_PDF_SHARED_API bool Remove(const System::SharedPtr<OutputIntent>& item) override;
151 
164  ASPOSE_PDF_SHARED_API System::SharedPtr<OutputIntent> idx_get(int32_t index);
165 
166 protected:
167 
168  const System::SharedPtr<Engine::Data::IPdfArray>& get_EngineIntents() const;
169 
175 
176  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(OutputIntents, CODEPORTING_ARGS(System::SharedPtr<Document> document));
177 
178  virtual ASPOSE_PDF_SHARED_API ~OutputIntents();
179 
180 private:
181 
182  System::WeakPtr<Document> _document;
187 
188  void set_EngineIntents(System::SharedPtr<Engine::Data::IPdfArray> value);
189 
190  void EnsureCacheInitialized();
191  void AddIntentSubtypeToCache(System::SharedPtr<Engine::Data::IPdfPrimitive> outputIntent);
192  bool EnsureEngineIntentsInitialized();
194 
195 };
196 
197 } // namespace Pdf
198 } // namespace Aspose
199 
200 
Class representing PDF document
Definition: Document.h:620
Definition: Artifact.h:67
Represents the collection of OutputIntent.
Definition: OutputIntents.h:47
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
Interface of enumerator which can be used to iterate through some elements. Objects of this class sho...
Definition: BaseOperatorCollection.h:47
Definition: AFRelationship.h:4
Subclass of System::SmartPtr which sets itself to weak mode at construction. Please note that this cl...
Definition: TextFragmentState.h:69
Interface of collection of elements. Objects of this class should only be allocated using System::Mak...
Definition: Collection.h:41
Whole PDF file will be submitted.