This class parses a command file for the GatordMockService.
More...
#include <CommandFileParser.hpp>
This class parses a command file for the GatordMockService.
The file contains one command per line. Valid commands are: SET and WAIT.
SET: Will construct and send a PeriodicCounterSelection packet to enable a set of counters. WAIT: Will pause for a set period of time to allow for data to be received.
Definition at line 22 of file CommandFileParser.hpp.
◆ ParseFile()
Definition at line 19 of file CommandFileParser.cpp.
References GatordMockService::ReceiveThreadRunning(), GatordMockService::SendPeriodicCounterSelectionList(), GatordMockService::SendRequestCounterDir(), and GatordMockService::WaitCommand().
Referenced by main().
21 std::ifstream infile(CommandFile);
24 std::cout <<
"Parsing command file: " << CommandFile << std::endl;
26 while (mockService.ReceiveThreadRunning() && std::getline(infile, line))
28 std::istringstream iss(line);
29 std::vector<std::string> tokens;
31 std::copy(std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>(),
32 std::back_inserter(tokens));
33 if (tokens.size() > 0)
35 std::string command = tokens[0];
36 if (command ==
"LIST")
43 mockService.SendRequestCounterDir();
56 if (tokens.size() > 2)
58 uint32_t period =
static_cast<uint32_t
>(std::stoul(tokens[1]));
60 std::vector<uint16_t> counters;
62 std::transform(tokens.begin() + 2, tokens.end(), std::back_inserter(counters),
63 [](
const std::string& str)
64 {
return static_cast<uint16_t
>(std::stoul(str)); });
66 mockService.SendPeriodicCounterSelectionList(period, counters);
70 std::cerr <<
"Invalid SET command. Format is: SET <polling period> <id list>" << std::endl;
73 else if (command ==
"WAIT")
82 if (tokens.size() > 1)
84 uint32_t timeout =
static_cast<uint32_t
>(std::stoul(tokens[1]));
85 mockService.WaitCommand(timeout);
89 std::cerr <<
"Invalid WAIT command. Format is: WAIT <interval>" << std::endl;
The documentation for this class was generated from the following files: