/ src / BerSetObject.cpp
BerSetObject.cpp
 1  /**
 2   * @file BerSetObject.cpp
 3   * @author Rene Ceska xceska06 (xceska06@stud.fit.vutbr.cz)
 4   * @date 2023-11-19
 5   */
 6  #include "inc/BerSetObject.h"
 7  
 8  berObjectTypes BerSetObject::getBerObjectType() { return berSequenceObject; }
 9  
10  long long int BerSetObject::getLenght() {
11  
12    long long int dataLenght = 0;
13  
14    for (long unsigned int i = 0; i < objects.size(); i++) {
15      dataLenght += objects[i]->getLenght();
16    }
17  
18    return BER_TAG_LENGTH + BER_LENGTH_OF_LENGTH_TAG + BER_4BYTE_LENGTH_LENGTH +
19           dataLenght;
20  }
21  
22  std::vector<unsigned char> BerSetObject::getBerRepresentation() {
23    std::vector<unsigned char> berRepresentation;
24    long long int dataLenght = 0;
25    for (long unsigned int i = 0; i < objects.size(); i++) {
26      dataLenght += objects[i]->getLenght();
27    }
28  
29    berRepresentation.push_back(BER_SET_C);
30    AppendLenght4Bytes(berRepresentation, dataLenght);
31    for (long unsigned int i = 0; i < objects.size(); i++) {
32      std::vector<unsigned char> objectRepresentation =
33          objects[i]->getBerRepresentation();
34      berRepresentation.insert(berRepresentation.end(),
35                               objectRepresentation.begin(),
36                               objectRepresentation.end());
37    }
38  
39    return berRepresentation;
40  }
41  
42  BerSetObject::BerSetObject() {}
43  
44  BerSetObject::~BerSetObject() {
45    for (long unsigned int i = 0; i < objects.size(); i++) {
46      delete objects[i];
47    }
48  }