mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-15 01:05:35 +08:00
[xswiftbus] Use std::string_view for performance in CDBusMessage
This avoids repeated dynamic memory allocations in dbusMessageHandler methods and elsewhere due to repeatedly constructing temporary strings. std::string_view is a C++17 feature but also part of the Library Fundamentals TS and available in all our compilers.
This commit is contained in:
@@ -12,10 +12,23 @@
|
||||
#include "dbus/dbus.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#if defined(_MSC_VER)
|
||||
#include <experimental/string>
|
||||
#elif defined(__clang__)
|
||||
#include <string_view>
|
||||
#else
|
||||
#include <experimental/string_view>
|
||||
#endif
|
||||
|
||||
namespace XSwiftBus
|
||||
{
|
||||
|
||||
#if defined(_MSC_VER) || defined(__clang__)
|
||||
using std::string_view;
|
||||
#else
|
||||
using std::experimental::string_view;
|
||||
#endif
|
||||
|
||||
//! DBus Message
|
||||
class CDBusMessage
|
||||
{
|
||||
@@ -45,13 +58,13 @@ namespace XSwiftBus
|
||||
dbus_uint32_t getSerial() const;
|
||||
|
||||
//! Get the called interface name
|
||||
std::string getInterfaceName() const;
|
||||
string_view getInterfaceName() const;
|
||||
|
||||
//! Get the called object path
|
||||
std::string getObjectPath() const;
|
||||
string_view getObjectPath() const;
|
||||
|
||||
//! Get the called method name
|
||||
std::string getMethodName() const;
|
||||
string_view getMethodName() const;
|
||||
|
||||
//! Begin writing argument
|
||||
void beginArgumentWrite();
|
||||
|
||||
Reference in New Issue
Block a user