@@ -223,7 +223,11 @@ class TBufferData: public IStatHolder, public TNonCopyable {
223
223
TSerializedCellVec LastKey;
224
224
};
225
225
226
- class TBuildScanUpload : public TActor <TBuildScanUpload>, public NTable::IScan {
226
+ template <NKikimrServices::TActivity::EType Activity>
227
+ class TBuildScanUpload : public TActor <TBuildScanUpload<Activity>>, public NTable::IScan {
228
+ using TThis = TBuildScanUpload<Activity>;
229
+ using TBase = TActor<TThis>;
230
+
227
231
protected:
228
232
const TUploadLimits Limits;
229
233
@@ -264,7 +268,7 @@ class TBuildScanUpload: public TActor<TBuildScanUpload>, public NTable::IScan {
264
268
const TSerializedTableRange& range,
265
269
const TUserTable& tableInfo,
266
270
TUploadLimits limits)
267
- : TActor (&TThis::StateWork)
271
+ : TBase (&TThis::StateWork)
268
272
, Limits(limits)
269
273
, BuildIndexId(buildIndexId)
270
274
, TargetTable(target)
@@ -300,8 +304,8 @@ class TBuildScanUpload: public TActor<TBuildScanUpload>, public NTable::IScan {
300
304
}
301
305
302
306
public:
303
- static constexpr NKikimrServices::TActivity::EType ActorActivityType () {
304
- return NKikimrServices::TActivity::BUILD_INDEX_SCAN_ACTOR ;
307
+ static constexpr auto ActorActivityType () {
308
+ return Activity ;
305
309
}
306
310
307
311
~TBuildScanUpload () override = default ;
@@ -354,7 +358,7 @@ class TBuildScanUpload: public TActor<TBuildScanUpload>, public NTable::IScan {
354
358
}
355
359
356
360
TAutoPtr<IDestructable> Finish (EAbort abort) noexcept override {
357
- auto ctx = TActivationContext::AsActorContext ().MakeFor (SelfId ());
361
+ auto ctx = TActivationContext::AsActorContext ().MakeFor (TBase:: SelfId ());
358
362
359
363
if (Uploader) {
360
364
TAutoPtr<TEvents::TEvPoisonPill> poison = new TEvents::TEvPoisonPill;
@@ -386,7 +390,7 @@ class TBuildScanUpload: public TActor<TBuildScanUpload>, public NTable::IScan {
386
390
LOG_D (" Finish " << Debug ());
387
391
388
392
Driver = nullptr ;
389
- PassAway ();
393
+ this -> PassAway ();
390
394
return nullptr ;
391
395
}
392
396
@@ -519,17 +523,17 @@ class TBuildScanUpload: public TActor<TBuildScanUpload>, public NTable::IScan {
519
523
LOG_D (" Upload, last key " << DebugPrintPoint (KeyTypes, WriteBuf.GetLastKey ().GetCells (), *AppData ()->TypeRegistry ) << " " << Debug ());
520
524
521
525
auto actor = NTxProxy::CreateUploadRowsInternal (
522
- SelfId (), TargetTable,
526
+ TBase:: SelfId (), TargetTable,
523
527
UploadColumnsTypes,
524
528
WriteBuf.GetRowsData (),
525
529
UploadMode,
526
530
true /* writeToPrivateTable*/ );
527
531
528
- Uploader = TActivationContext::AsActorContext ().MakeFor (SelfId ()).Register (actor);
532
+ Uploader = TActivationContext::AsActorContext ().MakeFor (TBase:: SelfId ()).Register (actor);
529
533
}
530
534
};
531
535
532
- class TBuildIndexScan final : public TBuildScanUpload {
536
+ class TBuildIndexScan final : public TBuildScanUpload<NKikimrServices::TActivity::BUILD_INDEX_SCAN_ACTOR> {
533
537
const ui32 TargetDataColumnPos; // positon of first data column in target table
534
538
535
539
public:
@@ -563,7 +567,7 @@ class TBuildIndexScan final: public TBuildScanUpload {
563
567
}
564
568
};
565
569
566
- class TBuildColumnsScan final : public TBuildScanUpload {
570
+ class TBuildColumnsScan final : public TBuildScanUpload<NKikimrServices::TActivity::BUILD_COLUMNS_SCAN_ACTOR> {
567
571
TString ValueSerialized;
568
572
569
573
public:
0 commit comments