Skip to content
Snippets Groups Projects
Commit 86245889 authored by Valerio Pastore's avatar Valerio Pastore
Browse files

updated base packet

parent f5abf1cf
No related branches found
No related tags found
No related merge requests found
Subproject commit 9288553c2e3b3be27697f5366bae4e39e19baa04
Subproject commit ea71ffe16732d5e26080485197bdbeaa9309ee7e
......@@ -9,9 +9,9 @@ class AstriPacketGeneric : public inaf::oasbo::PacketLib::BasePacket {
public:
AstriPacketGeneric(inaf::oasbo::PacketLib::BasePacketStructure &structure) : BasePacket(structure){}
size_t getHeaderSize() const override;
size_t getPayloadSize() const override;
size_t getTailSize() const override;
uint getHeaderSize() const override;
uint getPayloadSize() const override;
uint getTailSize() const override;
};
}
......
......@@ -17,12 +17,12 @@ namespace inaf::oasbo::Packets {
class PacketStructureJson : public inaf::oasbo::PacketLib::BasePacketStructure {
private:
std::vector<std::tuple<int, std::string, int>> structure;
std::vector<std::tuple<int, std::string, int>> convertToTupleVector(const nlohmann::ordered_json &data,
size_t &count);
std::vector<std::tuple<uint, std::string, uint>> structure;
std::vector<std::tuple<uint, std::string, uint>> convertToTupleVector(const nlohmann::ordered_json &data,
uint &count);
public:
std::vector<std::tuple<int, std::string, int>> readStructureFromSource(
std::vector<std::tuple<uint, std::string, uint>> readStructureFromSource(
std::string source) override;
PacketStructureJson(std::string source){
updateStructure(source);
......
......@@ -18,12 +18,12 @@ class PacketStructureTxt: public inaf::oasbo::PacketLib::BasePacketStructure {
private:
std::vector<std::string> stringArrayFile;
std::vector<std::string> toStringArray(std::ifstream &f);
std::vector<std::tuple<int, std::string, int>> structure;
std::vector<std::tuple<int, std::string, int>> convertToTupleVector(
size_t &start, size_t &count);
std::vector<std::tuple<uint, std::string, uint>> structure;
std::vector<std::tuple<uint, std::string, uint>> convertToTupleVector(
uint &start, uint &count);
public:
std::vector<std::tuple<int, std::string, int>> readStructureFromSource(
std::vector<std::tuple<uint, std::string, uint>> readStructureFromSource(
std::string source) override;
PacketStructureTxt(std::string source){
updateStructure(source);
......
......@@ -9,11 +9,11 @@
using namespace inaf::oasbo::Packets;
size_t AstriPacketGeneric::getHeaderSize() const {
uint AstriPacketGeneric::getHeaderSize() const {
return 6;
}
size_t AstriPacketGeneric::getPayloadSize() const {
uint AstriPacketGeneric::getPayloadSize() const {
auto val = this->operator [](5);
if(val.has_value())
return val.value()-1;
......@@ -23,7 +23,7 @@ size_t AstriPacketGeneric::getPayloadSize() const {
}
}
size_t AstriPacketGeneric::getTailSize() const {
uint AstriPacketGeneric::getTailSize() const {
return 2;
}
......@@ -9,14 +9,14 @@
using namespace inaf::oasbo::Packets;
std::vector<std::tuple<int, std::string, int>> PacketStructureJson::readStructureFromSource(std::string source) {
std::vector<std::tuple<uint, std::string, uint>> PacketStructureJson::readStructureFromSource(std::string source) {
std::ifstream file;
file.open(source, std::ios::in);
if (!file.is_open()) {
std::cerr << "Error: Could not open file: " << source << std::endl;
exit (EXIT_FAILURE);
}
size_t count = 0;
uint count = 0;
nlohmann::ordered_json data;
file >> data;
this->structure = convertToTupleVector(data, count);
......@@ -24,9 +24,9 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureJson::readStructur
return structure;
}
std::vector<std::tuple<int, std::string, int>> PacketStructureJson::convertToTupleVector(
const nlohmann::ordered_json &data, size_t &count) {
std::vector<std::tuple<int, std::string, int>> out;
std::vector<std::tuple<uint, std::string, uint>> PacketStructureJson::convertToTupleVector(
const nlohmann::ordered_json &data, uint &count) {
std::vector<std::tuple<uint, std::string, uint>> out;
for (auto it = data.begin(); it != data.end(); ++it) {
if (it.value().is_object()) {
if (!it.value().count("size") || !it.value().count("fields")
......@@ -35,11 +35,11 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureJson::convertToTup
<< std::endl;
exit (EXIT_FAILURE);
}
for (auto i = 0; i < it.value()["size"]; i++) {
std::vector<std::tuple<int, std::string, int>> subArray =
for (uint i = 0; i < it.value()["size"]; i++) {
std::vector<std::tuple<uint, std::string, uint>> subArray =
convertToTupleVector(it.value()["fields"], count);
std::for_each(subArray.begin(), subArray.end(),
[i](std::tuple<int, std::string, int> &line) {
[i](std::tuple<uint, std::string, uint> &line) {
std::get < 1
> (line).append("_#").append(
std::to_string(i));
......
......@@ -8,13 +8,13 @@
#include <PacketStructureTxt.h>
using namespace inaf::oasbo::Packets;
std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::readStructureFromSource(
std::vector<std::tuple<uint, std::string, uint>> PacketStructureTxt::readStructureFromSource(
std::string source) {
std::ifstream file;
file.open(source, std::ios::in);
stringArrayFile = this->toStringArray(file);
size_t start = 0;
size_t count = 0;
uint start = 0;
uint count = 0;
this->structure = convertToTupleVector(start, count);
file.close();
return structure;
......@@ -30,9 +30,9 @@ std::vector<std::string> PacketStructureTxt::toStringArray(
return out;
}
std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::convertToTupleVector(
size_t &start, size_t &count) {
std::vector<std::tuple<int, std::string, int>> out;
std::vector<std::tuple<uint, std::string, uint>> PacketStructureTxt::convertToTupleVector(
uint &start, uint &count) {
std::vector<std::tuple<uint, std::string, uint>> out;
for (;
start < stringArrayFile.size()
&& stringArrayFile.at(start).find("}") == std::string::npos;
......@@ -42,16 +42,15 @@ std::vector<std::tuple<int, std::string, int>> PacketStructureTxt::convertToTupl
continue;
}
if (line.find("array") != std::string::npos) {
size_t arraySize = std::stoi(
uint arraySize = std::stoi(
line.substr(line.find(":") + 1, line.find("{")));
size_t i;
std::vector<std::tuple<int, std::string, int>> array;
size_t newStart = start + 1;
for (i = 0; i < arraySize; i++) {
std::vector<std::tuple<uint, std::string, uint>> array;
uint newStart = start + 1;
for (uint i = 0; i < arraySize; i++) {
newStart = start + 1;
array = convertToTupleVector(newStart, count);
std::for_each(array.begin(), array.end(),
[i](std::tuple<int, std::string, int> &line) {
[i](std::tuple<uint, std::string, uint> &line) {
std::get<1>(line).append("_#").append(
std::to_string(i));
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment