Allow using vendored tinyxml2 for XMLRPC

By default, builds will still not have XMLRPC enabled at all and the
configure flag `--with-xmlrpc-tinyxml2` must be specified. If both
xmlrpc-c and tinyxml2 are specified, xmlrpc-c takes precedence.

Basic benchmarks indicate tinyxml2 is 2x faster for small
requests/responses, and that only increases as response sizes get
larger.
This commit is contained in:
kannibalox
2024-10-19 20:23:18 -04:00
committed by Jari Sundell
parent 6ab265ecd4
commit 87c6422052
17 changed files with 6764 additions and 576 deletions
+5 -3
View File
@@ -76,7 +76,7 @@ public:
XmlRpc() : m_env(NULL), m_registry(NULL), m_dialect(dialect_i8) {}
bool is_valid() const { return m_env != NULL; }
bool is_valid() const;
void initialize();
void cleanup();
@@ -93,8 +93,8 @@ public:
slot_tracker& slot_find_tracker() { return m_slotFindTracker; }
slot_peer& slot_find_peer() { return m_slotFindPeer; }
static int64_t size_limit();
static void set_size_limit(uint64_t size);
int64_t size_limit();
void set_size_limit(uint64_t size);
private:
void* m_env;
@@ -102,6 +102,8 @@ private:
int m_dialect;
bool m_isValid;
slot_download m_slotFindDownload;
slot_file m_slotFindFile;
slot_tracker m_slotFindTracker;