Commit 7427ac0c authored by YannGarcia's avatar YannGarcia
Browse files

Bug fixed in Layers

parent 24f9b4e1
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -123,20 +123,23 @@ protected: //! \protectedsection
  inline void to_all_layers(std::vector<layer *> &layers, OCTETSTRING &data, params &params) {
    for (std::vector<layer *>::const_iterator it = layers.cbegin(); it != layers.cend(); ++it) {
      layer *p = *it;
      p->receive_data(data, params); // FIXME BUG I
      printf("to_all_layers: %p\n", (void*)p);
      p->receive_data(data, params);
    }                                // End of 'for' statement
  };

  inline void receive_to_all_layers(OCTETSTRING &data, params &params) {
    for (std::vector<layer *>::const_iterator it = upperLayers.cbegin(); it != upperLayers.cend(); ++it) {
      layer *p = *it;
      layer *p = static_cast<layer*>(*it);
      printf("receive_to_all_layers: %p\n", (void*)p);
      p->receive_data(data, params);
    } // End of 'for' statement
  };

  inline void send_to_all_layers(OCTETSTRING &data, params &params) {
    for (std::vector<layer *>::const_iterator it = lowerLayers.cbegin(); it != lowerLayers.cend(); ++it) {
      layer *p = *it;
      layer *p = static_cast<layer*>(*it);
      printf("send_to_all_layers: %p\n", (void*)p);
      p->send_data(data, params);
    } // End of 'for' statement
  };
+3 −1
Original line number Diff line number Diff line
@@ -44,14 +44,16 @@ layer *layer_stack_builder::create_layer_stack(const char *p_layer_stack_descrip
        loggers::get_instance().error("layer_stack_builder::create_layer_stack: %s: Layer creation error", m[1].str().c_str());
      }

      loggers::get_instance().log("layer_stack_builder::create_layer_stack: Setup layers for %s", l->to_string().c_str());
      loggers::get_instance().log("layer_stack_builder::create_layer_stack: Setup layers for %s - %p", l->to_string().c_str(), (void*)l);
      l->add_upper_layer(up);
      if (entry == NULL) { // Set the first declared layer
        entry = l;
      }
      loggers::get_instance().log("layer_stack_builder::create_layer_stack: Set up for %s - %p", l->to_string().c_str(), (void*)l);
      up = l; // Build the linked list of layers
    }         // End of 'for' statement
  } catch (const std::logic_error &e) {
    loggers::get_instance().error("layer_stack_builder::create_layer_stack: In catch %s", e.what());
    if (up) { // FIXME To be reviewed
      up->delete_layer();
      up = NULL;
+2 −2
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
udp_layer::udp_layer(const std::string &p_type, const std::string &param)
  : layer(p_type), PORT(p_type.c_str()), _params(), _saddr{0}, _daddr{0}, _reuse_incoming_source_adddress(false), _fd(-1),
    _time_key("udp_layer::Handle_Fd_Event_Readable") {
  loggers::get_instance().log(">>> udp_layer::udp_layer (1): %s, %s", to_string().c_str(), param.c_str());
  loggers::get_instance().log(">>> udp_layer::udp_layer (1): %s, %s, %p", to_string().c_str(), param.c_str(), (void*)this);

  // Setup parameters
  params::convert(_params, param);
@@ -110,7 +110,7 @@ void udp_layer::close() {
  }
}

void udp_layer::send_data(OCTETSTRING &data, params_its &params) {
void udp_layer::send_data(OCTETSTRING &data, params &params) {
  loggers::get_instance().log(">>> udp_layer::send_data: %d", _fd);
  loggers::get_instance().log_msg(">>> udp_layer::send_data: ", data);

+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public: //! \publicsection
   * \param[in] p_data The data to be sent
   * \param[in] p_params Some parameters to overwrite default value of the lower layers parameters
   */
  virtual void send_data(OCTETSTRING &data, params_its &params);
  virtual void send_data(OCTETSTRING &data, params &params);
  /*!
   * \virtual
   * \fn void receive_data(OCTETSTRING& data, params_its& params);