fwd.h 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  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 TJobTraceId = TGUID;
  100. using TYPath = TString;
  101. using TLocalFilePath = TString;
  102. template <class T, class TDerived = void>
  103. struct TOneOrMany;
  104. // key column values
  105. using TKey = TOneOrMany<TNode>;
  106. class TSortColumn;
  107. // column names
  108. using TColumnNames = TOneOrMany<TString>;
  109. // key column descriptors.
  110. class TSortColumns;
  111. enum EValueType : int;
  112. enum ESortOrder : int;
  113. enum EOptimizeForAttr : i8;
  114. enum EErasureCodecAttr : i8;
  115. enum ESchemaModificationAttr : i8;
  116. enum class EMasterReadKind : int;
  117. class TColumnSchema;
  118. class TTableSchema;
  119. enum class ERelation;
  120. struct TKeyBound;
  121. struct TReadLimit;
  122. struct TReadRange;
  123. struct TRichYPath;
  124. struct TAttributeFilter;
  125. ////////////////////////////////////////////////////////////////////////////////
  126. // io.h
  127. ////////////////////////////////////////////////////////////////////////////////
  128. enum class EFormatType : int;
  129. struct TFormat;
  130. class IFileReader;
  131. using IFileReaderPtr = ::TIntrusivePtr<IFileReader>;
  132. class IFileWriter;
  133. using IFileWriterPtr = ::TIntrusivePtr<IFileWriter>;
  134. class IBlobTableReader;
  135. using IBlobTableReaderPtr = ::TIntrusivePtr<IBlobTableReader>;
  136. class TRawTableReader;
  137. using TRawTableReaderPtr = ::TIntrusivePtr<TRawTableReader>;
  138. class TRawTableWriter;
  139. using TRawTableWriterPtr = ::TIntrusivePtr<TRawTableWriter>;
  140. template <class T, class = void>
  141. class TTableReader;
  142. template <class T, class = void>
  143. class TTableRangesReader;
  144. template <typename T>
  145. using TTableRangesReaderPtr = ::TIntrusivePtr<TTableRangesReader<T>>;
  146. template <class T>
  147. using TTableReaderPtr = ::TIntrusivePtr<TTableReader<T>>;
  148. template <class T, class = void>
  149. class TTableWriter;
  150. template <class T>
  151. using TTableWriterPtr = ::TIntrusivePtr<TTableWriter<T>>;
  152. struct TYaMRRow;
  153. using ::google::protobuf::Message;
  154. class ISkiffRowParser;
  155. using ISkiffRowParserPtr = ::TIntrusivePtr<ISkiffRowParser>;
  156. class ISkiffRowSkipper;
  157. using ISkiffRowSkipperPtr = ::TIntrusivePtr<ISkiffRowSkipper>;
  158. namespace NDetail {
  159. class TYdlGenericRowType;
  160. } // namespace NDetail
  161. template<class... TYdlRowTypes>
  162. class TYdlOneOf;
  163. template<class... TProtoRowTypes>
  164. class TProtoOneOf;
  165. template<class... TSkiffRowTypes>
  166. class TSkiffRowOneOf;
  167. using TYaMRReader = TTableReader<TYaMRRow>;
  168. using TYaMRWriter = TTableWriter<TYaMRRow>;
  169. using TNodeReader = TTableReader<TNode>;
  170. using TNodeWriter = TTableWriter<TNode>;
  171. using TMessageReader = TTableReader<Message>;
  172. using TMessageWriter = TTableWriter<Message>;
  173. using TYdlTableWriter = TTableWriter<NDetail::TYdlGenericRowType>;
  174. template <class TDerived>
  175. struct TIOOptions;
  176. struct TFileReaderOptions;
  177. struct TFileWriterOptions;
  178. struct TTableReaderOptions;
  179. class TSkiffRowHints;
  180. struct TTableWriterOptions;
  181. ////////////////////////////////////////////////////////////////////////////////
  182. // job_statistics.h
  183. ////////////////////////////////////////////////////////////////////////////////
  184. class TJobStatistics;
  185. template <typename T>
  186. class TJobStatisticsEntry;
  187. ////////////////////////////////////////////////////////////////////////////////
  188. // operation.h
  189. ////////////////////////////////////////////////////////////////////////////////
  190. class TFormatHints;
  191. struct TUserJobSpec;
  192. struct TMapOperationSpec;
  193. struct TRawMapOperationSpec;
  194. struct TReduceOperationSpec;
  195. struct TMapReduceOperationSpec;
  196. struct TJoinReduceOperationSpec;
  197. struct TSortOperationSpec;
  198. class IIOperationPreparationContext;
  199. class IJob;
  200. using IJobPtr = ::TIntrusivePtr<IJob>;
  201. class IRawJob;
  202. using IRawJobPtr = ::TIntrusivePtr<IRawJob>;
  203. enum EMergeMode : int;
  204. struct TMergeOperationSpec;
  205. struct TEraseOperationSpec;
  206. template <class TR, class TW>
  207. class IMapper;
  208. template <class TR, class TW>
  209. class IReducer;
  210. template <class TR, class TW>
  211. class IAggregatorReducer;
  212. struct TSuspendOperationOptions;
  213. struct TResumeOperationOptions;
  214. enum class EOperationBriefState : int;
  215. struct TOperationAttributes;
  216. struct TOperationOptions;
  217. enum class EOperationAttribute : int;
  218. struct TOperationAttributeFilter;
  219. struct TGetOperationOptions;
  220. struct TListOperationsOptions;
  221. struct TGetJobOptions;
  222. struct TListJobsOptions;
  223. struct TGetJobTraceOptions;
  224. struct IOperationClient;
  225. enum class EFinishedJobState : int;
  226. enum class EJobType : int;
  227. enum class EJobState : int;
  228. enum class ETaskName : int;
  229. class TTaskName;
  230. struct TJobBinaryDefault;
  231. struct TJobBinaryLocalPath;
  232. struct TJobBinaryCypressPath;
  233. using TJobBinaryConfig = std::variant<
  234. TJobBinaryDefault,
  235. TJobBinaryLocalPath,
  236. TJobBinaryCypressPath>;
  237. struct TRetryConfig;
  238. class IRetryConfigProvider;
  239. using IRetryConfigProviderPtr = ::TIntrusivePtr<IRetryConfigProvider>;
  240. }
  241. /// @endcond