fwd.h 9.3 KB

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