LCOV - code coverage report
Current view: top level - DCPS/security - TokenWriter.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 48 48 100.0 %
Date: 2023-04-30 01:32:43 Functions: 7 8 87.5 %

          Line data    Source code
       1             : /*
       2             : *
       3             : *
       4             : * Distributed under the OpenDDS License.
       5             : * See: http://www.OpenDDS.org/license.html
       6             : */
       7             : #include "TokenWriter.h"
       8             : #include <cstring>
       9             : #include <sstream>
      10             : 
      11             : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
      12             : 
      13             : namespace OpenDDS {
      14             : namespace Security {
      15             : 
      16          55 : TokenWriter::TokenWriter(DDS::Security::Token& token_ref)
      17          55 : : binary_property_inserter_(token_ref.binary_properties)
      18          55 : , property_inserter_(token_ref.properties)
      19          55 : , token_ref_(token_ref)
      20         110 : , reader_(token_ref)
      21             : {
      22             : 
      23          55 : }
      24             : 
      25         102 : TokenWriter::TokenWriter(DDS::Security::Token& token_ref, const std::string& class_id)
      26         102 : : binary_property_inserter_(token_ref.binary_properties)
      27         102 : , property_inserter_(token_ref.properties)
      28         102 : , token_ref_(token_ref)
      29         204 : , reader_(token_ref)
      30             : {
      31         102 :   token_ref.class_id = class_id.c_str();
      32         102 : }
      33             : 
      34         157 : TokenWriter::~TokenWriter()
      35             : {
      36         157 : }
      37             : 
      38         139 : void TokenWriter::add_property(const char* prop_name, const char* prop_value, bool propagate)
      39             : {
      40         139 :   DDS::Property_t p;
      41         139 :   p.name = prop_name;
      42         139 :   p.value = prop_value;
      43         139 :   p.propagate = propagate;
      44         139 :   *property_inserter_ = p;
      45         139 : }
      46             : 
      47          22 : void TokenWriter::add_property(const char* prop_name, const DDS::OctetSeq& prop_value, bool propagate)
      48             : {
      49          22 :   std::ostringstream out;
      50          22 :   out.write(reinterpret_cast<const char*>(prop_value.get_buffer()), prop_value.length());
      51             : 
      52          22 :   DDS::Property_t p;
      53          22 :   p.name = prop_name;
      54          22 :   p.value = out.str().c_str();
      55          22 :   p.propagate = propagate;
      56          22 :   *property_inserter_ = p;
      57          22 : }
      58             : 
      59         115 : void TokenWriter::add_bin_property(const char* prop_name, const DDS::OctetSeq& prop_value, bool propagate)
      60             : {
      61         115 :   DDS::BinaryProperty_t p;
      62         115 :   p.name = prop_name;
      63         115 :   p.value = prop_value;
      64         115 :   p.propagate = propagate;
      65         115 :   *binary_property_inserter_ = p;
      66         115 : }
      67             : 
      68          28 : void TokenWriter::add_bin_property(const char* prop_name, const std::string& prop_value, bool propagate)
      69             : {
      70          28 :   DDS::BinaryProperty_t p;
      71          28 :   p.name = prop_name;
      72          28 :   p.propagate = propagate;
      73          28 :   p.value.length(static_cast<unsigned int>(prop_value.size() + 1 /* For null */));
      74          28 :   std::memcpy(p.value.get_buffer(),
      75          28 :               prop_value.c_str(),
      76          28 :               p.value.length());
      77          28 :   *binary_property_inserter_ = p;
      78          28 : }
      79             : 
      80             : } // namespace Security
      81             : } // namespace OpenDDS
      82             : 
      83             : OPENDDS_END_VERSIONED_NAMESPACE_DECL

Generated by: LCOV version 1.16