common.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #pragma once
  2. #include <ydb/core/base/events.h>
  3. #include <ydb/library/actors/core/events.h>
  4. #include <ydb/library/conclusion/status.h>
  5. namespace Ydb {
  6. class Value;
  7. };
  8. namespace NKikimr::NMetadata {
  9. namespace NInternal {
  10. class TTableRecord;
  11. };
  12. namespace NModifications {
  13. template <class TObject>
  14. class IAlterPreparationController {
  15. public:
  16. using TPtr = std::shared_ptr<IAlterPreparationController>;
  17. virtual ~IAlterPreparationController() = default;
  18. virtual void OnPreparationFinished(std::vector<TObject>&& objects) = 0;
  19. virtual void OnPreparationProblem(const TString& errorMessage) = 0;
  20. };
  21. class IAlterController {
  22. public:
  23. using TPtr = std::shared_ptr<IAlterController>;
  24. virtual ~IAlterController() = default;
  25. virtual void OnAlteringProblem(const TString& errorMessage) = 0;
  26. virtual void OnAlteringFinished() = 0;
  27. };
  28. class IColumnValuesMerger {
  29. public:
  30. using TPtr = std::shared_ptr<IColumnValuesMerger>;
  31. virtual ~IColumnValuesMerger() = default;
  32. virtual TConclusionStatus Merge(Ydb::Value& value, const Ydb::Value& patch) const = 0;
  33. };
  34. class IRecordsMerger {
  35. protected:
  36. virtual IColumnValuesMerger::TPtr BuildMerger(const TString& columnName) const = 0;
  37. public:
  38. virtual ~IRecordsMerger() = default;
  39. virtual TConclusionStatus MergeRecords(NInternal::TTableRecord& value, const NInternal::TTableRecord& patch) const = 0;
  40. };
  41. enum EEvents {
  42. EvRestoreFinished = EventSpaceBegin(TKikimrEvents::ES_METADATA_MANAGER),
  43. EvRestoreProblem,
  44. EvModificationFinished,
  45. EvModificationProblem,
  46. EvAlterFinished,
  47. EvAlterProblem,
  48. EvAlterPreparationFinished,
  49. EvAlterPreparationProblem,
  50. EvFetchDatabaseResponse,
  51. EvEnd
  52. };
  53. static_assert(EEvents::EvEnd < EventSpaceEnd(TKikimrEvents::ES_METADATA_MANAGER), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_METADATA_MANAGER)");
  54. }
  55. }