~singpolyma/biboumi

9ac0d3a5766494c9c0c2074c4a21542eea195a29 — Florent Le Coz 8 years ago 9167cdf
A few cleanups, and make a few things more modern
M louloulibs/config/config.hpp => louloulibs/config/config.hpp +6 -12
@@ 7,7 7,7 @@
 * If you want to exit if the file does not exist when it is open for
 * reading, set Config::file_must_exist = true.
 *
 * Config::get() can the be used to access the values in the conf.
 * Config::get() can then be used to access the values in the conf.
 *
 * Use Config::close() when you're done getting/setting value. This will
 * save the config into the file.


@@ 33,35 33,29 @@ public:
  /**
   * returns a value from the config. If it doesn’t exist, use
   * the second argument as the default.
   * @param option The option we want
   * @param def The default value in case the option does not exist
   */
  static std::string get(const std::string&, const std::string&);
  /**
   * returns a value from the config. If it doesn’t exist, use
   * the second argument as the default.
   * @param option The option we want
   * @param def The default value in case the option does not exist
   */
  static int get_int(const std::string&, const int&);
  /**
   * Set a value for the given option. And write all the config
   * in the file from which it was read if boolean is set.
   * @param option The option to set
   * @param value The value to use
   * @param save if true, save the config file
   * in the file from which it was read if save is true.
   */
  static void set(const std::string&, const std::string&, bool save = false);
  /**
   * Adds a function to a list. This function will be called whenever a
   * configuration change occurs.
   * configuration change occurs (when set() is called, or when the initial
   * conf is read)
   */
  static void connect(t_config_changed_callback);
  /**
   * Close the config file, saving it to the file is save == true.
   * Destroy the instance, forcing it to be recreated (with potentially
   * different parameters) the next time it’s needed.
   */
  static void close();

  /**
   * Set the value of the filename to use, before calling any method.
   */

M louloulibs/xmpp/xmpp_parser.cpp => louloulibs/xmpp/xmpp_parser.cpp +3 -3
@@ 124,12 124,12 @@ void XmppParser::end_element(const XML_Char*)
    }
}

void XmppParser::char_data(const XML_Char* data, int len)
void XmppParser::char_data(const XML_Char* data, const size_t len)
{
  if (this->current_node->has_children())
    this->current_node->get_last_child()->add_to_tail(std::string(data, len));
    this->current_node->get_last_child()->add_to_tail({data, len});
  else
    this->current_node->add_to_inner(std::string(data, len));
    this->current_node->add_to_inner({data, len});
}

void XmppParser::stanza_event(const Stanza& stanza) const

M louloulibs/xmpp/xmpp_parser.hpp => louloulibs/xmpp/xmpp_parser.hpp +1 -1
@@ 82,7 82,7 @@ public:
  /**
   * Some inner or tail data has been parsed
   */
  void char_data(const XML_Char* data, int len);
  void char_data(const XML_Char* data, const size_t len);
  /**
   * Calls all the stanza_callbacks one by one.
   */

M louloulibs/xmpp/xmpp_stanza.cpp => louloulibs/xmpp/xmpp_stanza.cpp +8 -2
@@ 199,6 199,11 @@ void XmlNode::set_name(const std::string& name)
  this->name = name;
}

void XmlNode::set_name(std::string&& name)
{
  this->name = std::move(name);
}

const std::string XmlNode::get_name() const
{
  return this->name;


@@ 228,7 233,7 @@ bool XmlNode::has_children() const
  return !this->children.empty();
}

const std::string XmlNode::get_tag(const std::string& name) const
const std::string& XmlNode::get_tag(const std::string& name) const
{
  try
    {


@@ 237,7 242,8 @@ const std::string XmlNode::get_tag(const std::string& name) const
    }
  catch (const std::out_of_range& e)
    {
      return "";
      static const std::string def{};
      return def;
    }
}


M louloulibs/xmpp/xmpp_stanza.hpp => louloulibs/xmpp/xmpp_stanza.hpp +5 -4
@@ 96,6 96,7 @@ public:
  XmlNode* get_last_child() const;
  XmlNode* get_parent() const;
  void set_name(const std::string& name);
  void set_name(std::string&& name);
  const std::string get_name() const;
  /**
   * Serialize the stanza into a string


@@ 110,7 111,7 @@ public:
   * Gets the value for the given attribute, returns an empty string if the
   * node as no such attribute.
   */
  const std::string get_tag(const std::string& name) const;
  const std::string& get_tag(const std::string& name) const;
  /**
   * Remove the attribute of the node. Does nothing if that attribute is not
   * present. Returns true if the tag was removed, false if it was absent.


@@ 133,13 134,13 @@ private:
  XmlNode& operator=(XmlNode&&) = delete;
};

std::ostream& operator<<(std::ostream& os, const XmlNode& node);

/**
 * An XMPP stanza is just an XML node of level 2 in the XMPP document (the
 * level 1 ones are the <stream::stream/>, and the ones above 2 are just the
 * content of the stanzas)
 */
typedef XmlNode Stanza;

std::ostream& operator<<(std::ostream& os, const XmlNode& node);
using Stanza = XmlNode;

#endif // XMPP_STANZA_INCLUDED