aboutsummaryrefslogtreecommitdiff
path: root/src/ClientMessage.hxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-01-03 17:58:22 +0100
committerMax Kellermann <max@duempel.org>2013-01-03 17:58:22 +0100
commit5155b0f6087b5929838f6594a719011e3e704244 (patch)
treee924eff40e0330d4a4129213f32dc6f03dadcd16 /src/ClientMessage.hxx
parentd919f8d50ab32a94b8965330297985cd14c45a42 (diff)
ClientMessage: turn into a class
Diffstat (limited to 'src/ClientMessage.hxx')
-rw-r--r--src/ClientMessage.hxx55
1 files changed, 17 insertions, 38 deletions
diff --git a/src/ClientMessage.hxx b/src/ClientMessage.hxx
index 6d1e734b..2a929d44 100644
--- a/src/ClientMessage.hxx
+++ b/src/ClientMessage.hxx
@@ -22,52 +22,31 @@
#include "gcc.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stddef.h>
+#include <string>
/**
* A client-to-client message.
*/
-struct client_message {
- char *channel;
-
- char *message;
+class ClientMessage {
+ std::string channel, message;
+
+public:
+ template<typename T, typename U>
+ ClientMessage(T &&_channel, U &&_message)
+ :channel(std::forward<T>(_channel)),
+ message(std::forward<U>(_message)) {}
+
+ const char *GetChannel() const {
+ return channel.c_str();
+ }
+
+ const char *GetMessage() const {
+ return message.c_str();
+ }
};
gcc_pure
bool
client_message_valid_channel_name(const char *name);
-gcc_pure
-static inline bool
-client_message_defined(const struct client_message *msg)
-{
- assert(msg != NULL);
- assert((msg->channel == NULL) == (msg->message == NULL));
-
- return msg->channel != NULL;
-}
-
-void
-client_message_init_null(struct client_message *msg);
-
-void
-client_message_init(struct client_message *msg,
- const char *channel, const char *message);
-
-void
-client_message_copy(struct client_message *dest,
- const struct client_message *src);
-
-gcc_malloc
-struct client_message *
-client_message_dup(const struct client_message *src);
-
-void
-client_message_deinit(struct client_message *msg);
-
-void
-client_message_free(struct client_message *msg);
-
#endif