Combine enums for flux source/sink types. config.cc now knows whether they're

read-only, write-only, and read-write.
This commit is contained in:
David Given
2023-07-24 00:50:54 +02:00
parent 315889faf6
commit 9867f8c302
16 changed files with 175 additions and 163 deletions

View File

@@ -10,35 +10,34 @@ std::unique_ptr<FluxSource> FluxSource::create(const FluxSourceProto& config)
{
switch (config.type())
{
case FluxSourceProto::DRIVE:
case FluxSourceSinkType::DRIVE:
return createHardwareFluxSource(config.drive());
case FluxSourceProto::ERASE:
case FluxSourceSinkType::ERASE:
return createEraseFluxSource(config.erase());
case FluxSourceProto::KRYOFLUX:
case FluxSourceSinkType::KRYOFLUX:
return createKryofluxFluxSource(config.kryoflux());
case FluxSourceProto::TEST_PATTERN:
case FluxSourceSinkType::TEST_PATTERN:
return createTestPatternFluxSource(config.test_pattern());
case FluxSourceProto::SCP:
case FluxSourceSinkType::SCP:
return createScpFluxSource(config.scp());
case FluxSourceProto::A2R:
case FluxSourceSinkType::A2R:
return createA2rFluxSource(config.a2r());
case FluxSourceProto::CWF:
case FluxSourceSinkType::CWF:
return createCwfFluxSource(config.cwf());
case FluxSourceProto::FLUX:
case FluxSourceSinkType::FLUX:
return createFl2FluxSource(config.fl2());
case FluxSourceProto::FLX:
case FluxSourceSinkType::FLX:
return createFlxFluxSource(config.flx());
default:
error("bad input disk configuration");
return std::unique_ptr<FluxSource>();
}
}

View File

@@ -41,20 +41,7 @@ message FlxFluxSourceProto {
// NEXT: 12
message FluxSourceProto {
enum FluxSourceType {
NOT_SET = 0;
DRIVE = 1;
TEST_PATTERN = 2;
ERASE = 3;
KRYOFLUX = 4;
SCP = 5;
CWF = 6;
FLUX = 7;
FLX = 8;
A2R = 9;
}
optional FluxSourceType type = 9 [default = NOT_SET, (help) = "flux source type"];
optional FluxSourceSinkType type = 9 [default = NOT_SET, (help) = "flux source type"];
optional A2rFluxSourceProto a2r = 11;
optional CwfFluxSourceProto cwf = 7;