fwd.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. #pragma once
  2. ///
  3. /// @file yt/cpp/mapreduce/interface/fwd.h
  4. ///
  5. /// Header containing mostly forward declarations of types.
  6. #include <util/generic/fwd.h>
  7. #include <util/system/types.h>
  8. #include <variant>
  9. /// @cond Doxygen_Suppress
  10. namespace google::protobuf {
  11. class Message;
  12. }
  13. namespace NYT {
  14. ////////////////////////////////////////////////////////////////////////////////
  15. // batch_request.h
  16. ////////////////////////////////////////////////////////////////////////////////
  17. class IBatchRequest;
  18. using TBatchRequestPtr = ::TIntrusivePtr<IBatchRequest>;
  19. ////////////////////////////////////////////////////////////////////////////////
  20. // client.h
  21. ////////////////////////////////////////////////////////////////////////////////
  22. enum ELockMode : int;
  23. struct TStartTransactionOptions;
  24. struct TLockOptions;
  25. template <class TDerived>
  26. struct TTabletOptions;
  27. struct TMountTableOptions;
  28. struct TUnmountTableOptions;
  29. struct TRemountTableOptions;
  30. struct TReshardTableOptions;
  31. struct TAlterTableOptions;
  32. struct TLookupRowsOptions;
  33. struct TSelectRowsOptions;
  34. struct TCreateClientOptions;
  35. struct TAlterTableReplicaOptions;
  36. struct TGetFileFromCacheOptions;
  37. struct TPutFileToCacheOptions;
  38. struct TCheckPermissionResult;
  39. struct TCheckPermissionResponse;
  40. struct TCheckPermissionOptions;
  41. struct TTabletInfo;
  42. class ILock;
  43. using ILockPtr = ::TIntrusivePtr<ILock>;
  44. class ITransaction;
  45. using ITransactionPtr = ::TIntrusivePtr<ITransaction>;
  46. class ITransactionPinger;
  47. using ITransactionPingerPtr = ::TIntrusivePtr<ITransactionPinger>;
  48. struct IOperation;
  49. using IOperationPtr = ::TIntrusivePtr<IOperation>;
  50. class IClientBase;
  51. class IClient;
  52. using IClientPtr = ::TIntrusivePtr<IClient>;
  53. using IClientBasePtr = ::TIntrusivePtr<IClientBase>;
  54. ////////////////////////////////////////////////////////////////////////////////
  55. // config.h
  56. ////////////////////////////////////////////////////////////////////////////////
  57. struct TConfig;
  58. using TConfigPtr = ::TIntrusivePtr<TConfig>;
  59. ////////////////////////////////////////////////////////////////////////////////
  60. // cypress.h
  61. ////////////////////////////////////////////////////////////////////////////////
  62. enum ENodeType : int;
  63. struct TCreateOptions;
  64. struct TRemoveOptions;
  65. struct TGetOptions;
  66. struct TSetOptions;
  67. struct TMultisetAttributesOptions;
  68. struct TListOptions;
  69. struct TCopyOptions;
  70. struct TMoveOptions;
  71. struct TLinkOptions;
  72. struct TConcatenateOptions;
  73. struct TInsertRowsOptions;
  74. struct TDeleteRowsOptions;
  75. struct TTrimRowsOptions;
  76. class ICypressClient;
  77. ////////////////////////////////////////////////////////////////////////////////
  78. // errors.h
  79. ////////////////////////////////////////////////////////////////////////////////
  80. class TApiUsageError;
  81. class TYtError;
  82. class TErrorResponse;
  83. struct TFailedJobInfo;
  84. class TOperationFailedError;
  85. ////////////////////////////////////////////////////////////////////////////////
  86. // node.h
  87. ////////////////////////////////////////////////////////////////////////////////
  88. class TNode;
  89. ////////////////////////////////////////////////////////////////////////////////
  90. // common.h
  91. ////////////////////////////////////////////////////////////////////////////////
  92. using TTransactionId = TGUID;
  93. using TNodeId = TGUID;
  94. using TLockId = TGUID;
  95. using TOperationId = TGUID;
  96. using TTabletCellId = TGUID;
  97. using TReplicaId = TGUID;
  98. using TJobId = TGUID;
  99. using TYPath = TString;
  100. using TLocalFilePath = TString;
  101. template <class T, class TDerived = void>
  102. struct TOneOrMany;
  103. // key column values
  104. using TKey = TOneOrMany<TNode>;
  105. class TSortColumn;
  106. // column names
  107. using TColumnNames = TOneOrMany<TString>;
  108. // key column descriptors.
  109. class TSortColumns;
  110. enum EValueType : int;
  111. enum ESortOrder : int;
  112. enum EOptimizeForAttr : i8;
  113. enum EErasureCodecAttr : i8;
  114. enum ESchemaModificationAttr : i8;
  115. enum class EMasterReadKind : int;
  116. class TColumnSchema;
  117. class TTableSchema;
  118. enum class ERelation;
  119. struct TKeyBound;
  120. struct TReadLimit;
  121. struct TReadRange;
  122. struct TRichYPath;
  123. struct TAttributeFilter;
  124. ////////////////////////////////////////////////////////////////////////////////
  125. // io.h
  126. ////////////////////////////////////////////////////////////////////////////////
  127. enum class EFormatType : int;
  128. struct TFormat;
  129. class IFileReader;
  130. using IFileReaderPtr = ::TIntrusivePtr<IFileReader>;
  131. class IFileWriter;
  132. using IFileWriterPtr = ::TIntrusivePtr<IFileWriter>;
  133. class IBlobTableReader;
  134. using IBlobTableReaderPtr = ::TIntrusivePtr<IBlobTableReader>;
  135. class TRawTableReader;
  136. using TRawTableReaderPtr = ::TIntrusivePtr<TRawTableReader>;
  137. class TRawTableWriter;
  138. using TRawTableWriterPtr = ::TIntrusivePtr<TRawTableWriter>;
  139. template <class T, class = void>
  140. class TTableReader;
  141. template <class T, class = void>
  142. class TTableRangesReader;
  143. template <typename T>
  144. using TTableRangesReaderPtr = ::TIntrusivePtr<TTableRangesReader<T>>;
  145. template <class T>
  146. using TTableReaderPtr = ::TIntrusivePtr<TTableReader<T>>;
  147. template <class T, class = void>
  148. class TTableWriter;
  149. template <class T>
  150. using TTableWriterPtr = ::TIntrusivePtr<TTableWriter<T>>;
  151. struct TYaMRRow;
  152. using ::google::protobuf::Message;
  153. class ISkiffRowParser;
  154. using ISkiffRowParserPtr = ::TIntrusivePtr<ISkiffRowParser>;
  155. class ISkiffRowSkipper;
  156. using ISkiffRowSkipperPtr = ::TIntrusivePtr<ISkiffRowSkipper>;
  157. namespace NDetail {
  158. class TYdlGenericRowType;
  159. } // namespace NDetail
  160. template<class... TYdlRowTypes>
  161. class TYdlOneOf;
  162. template<class... TProtoRowTypes>
  163. class TProtoOneOf;
  164. template<class... TSkiffRowTypes>
  165. class TSkiffRowOneOf;
  166. using TYaMRReader = TTableReader<TYaMRRow>;
  167. using TYaMRWriter = TTableWriter<TYaMRRow>;
  168. using TNodeReader = TTableReader<TNode>;
  169. using TNodeWriter = TTableWriter<TNode>;
  170. using TMessageReader = TTableReader<Message>;
  171. using TMessageWriter = TTableWriter<Message>;
  172. using TYdlTableWriter = TTableWriter<NDetail::TYdlGenericRowType>;
  173. template <class TDerived>
  174. struct TIOOptions;
  175. struct TFileReaderOptions;
  176. struct TFileWriterOptions;
  177. struct TTableReaderOptions;
  178. class TSkiffRowHints;
  179. struct TTableWriterOptions;
  180. ////////////////////////////////////////////////////////////////////////////////
  181. // job_statistics.h
  182. ////////////////////////////////////////////////////////////////////////////////
  183. class TJobStatistics;
  184. template <typename T>
  185. class TJobStatisticsEntry;
  186. ////////////////////////////////////////////////////////////////////////////////
  187. // operation.h
  188. ////////////////////////////////////////////////////////////////////////////////
  189. class TFormatHints;
  190. struct TUserJobSpec;
  191. struct TMapOperationSpec;
  192. struct TRawMapOperationSpec;
  193. struct TReduceOperationSpec;
  194. struct TMapReduceOperationSpec;
  195. struct TJoinReduceOperationSpec;
  196. struct TSortOperationSpec;
  197. class IIOperationPreparationContext;
  198. class IJob;
  199. using IJobPtr = ::TIntrusivePtr<IJob>;
  200. class IRawJob;
  201. using IRawJobPtr = ::TIntrusivePtr<IRawJob>;
  202. enum EMergeMode : int;
  203. struct TMergeOperationSpec;
  204. struct TEraseOperationSpec;
  205. template <class TR, class TW>
  206. class IMapper;
  207. template <class TR, class TW>
  208. class IReducer;
  209. template <class TR, class TW>
  210. class IAggregatorReducer;
  211. struct TSuspendOperationOptions;
  212. struct TResumeOperationOptions;
  213. enum class EOperationBriefState : int;
  214. struct TOperationAttributes;
  215. struct TOperationOptions;
  216. enum class EOperationAttribute : int;
  217. struct TOperationAttributeFilter;
  218. struct TGetOperationOptions;
  219. struct TListOperationsOptions;
  220. struct TGetJobOptions;
  221. struct TListJobsOptions;
  222. struct IOperationClient;
  223. enum class EFinishedJobState : int;
  224. enum class EJobType : int;
  225. enum class EJobState : int;
  226. enum class ETaskName : int;
  227. class TTaskName;
  228. struct TJobBinaryDefault;
  229. struct TJobBinaryLocalPath;
  230. struct TJobBinaryCypressPath;
  231. using TJobBinaryConfig = std::variant<
  232. TJobBinaryDefault,
  233. TJobBinaryLocalPath,
  234. TJobBinaryCypressPath>;
  235. struct TRetryConfig;
  236. class IRetryConfigProvider;
  237. using IRetryConfigProviderPtr = ::TIntrusivePtr<IRetryConfigProvider>;
  238. }
  239. /// @endcond