INCLUDE_DIRECTORIES(${PROJECT_ROOT_DIR}/inc)
ADD_EXECUTABLE(${PROJECT_NAME}
+ ${PROJECT_ROOT_DIR}/src/messages/message_config_user_name.c
${PROJECT_ROOT_DIR}/src/messages/clock.c
${PROJECT_ROOT_DIR}/src/messages/message_command.c
${PROJECT_ROOT_DIR}/src/messages/message_factory.c
MESSAGE_KEEP_ALIVE, /** Keep alive request */
MESSAGE_ACK, /** Message delivery confirmation */
MESSAGE_COMMAND, /** Message with command data */
- MESSAGE_BYE /** Connection end request */
+ MESSAGE_BYE, /** Connection end request */
+ MESSAGE_CONFIG_USER_NAME /** User name to be set */
} message_type_e;
#define IP_ADDRESS_LEN 15
--- /dev/null
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MESSAGE_CONFIG_USER_NAME_H
+#define MESSAGE_CONFIG_USER_NAME_H
+
+#include "messages/message.h"
+
+/**
+ * @brief Config user name message data
+ */
+typedef struct message_config_user_name {
+ message_t base; /** Base class */
+ char *user_name; /** User name */
+} message_config_user_name_t;
+
+/**
+ * @brief Initializes message_config_user_name_t object.
+ *
+ * @param[in] message config user name message.
+ */
+void message_config_user_name_init(message_config_user_name_t *message);
+
+/**
+ * @brief Get name from mesage.
+ *
+ * @param[in] message config user name message.
+ *
+ * @return Const pointer to name.
+ */
+const char *message_config_user_name_get_name(message_config_user_name_t *message);
+
+/**
+ * @brief Set name for message.
+ *
+ * @param[in] message config user name message.
+ * @param[in] name name to be set.
+ */
+void message_config_user_name_set_name(message_config_user_name_t *message, const char *name);
+
+/**
+ * @brief Destroys message_config_user_name_t object.
+ *
+ * @param[in] message message.
+ */
+void message_config_user_name_destroy(message_config_user_name_t *message);
+
+/**
+ * @brief Deserializes message_config_user_name_t from reader's buffer.
+ *
+ * @param[in] message config user name message.
+ * @param[in] reader reader object.
+ *
+ * @return 0 on success, other value on failure.
+ */
+int message_config_user_name_deserialize(message_config_user_name_t *message, reader_t *reader);
+
+/**
+ * @brief Serializes message_config_user_name_t into writer's buffer.
+ *
+ * @param[in] message config user name message.
+ * @param[in] writer writer object.
+ *
+ * @return 0 on success, other value on failure.
+ */
+int message_config_user_name_serialize(message_config_user_name_t *message, writer_t *writer);
+
+#endif /* end of include guard: MESSAGE_CONFIG_USER_NAME_H */
--- /dev/null
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MESSAGE_CONFIG_USER_NAME_C
+#define MESSAGE_CONFIG_USER_NAME_C
+
+#include "messages/message_config_user_name.h"
+
+#include <string.h>
+#include "messages/macros.h"
+
+static int _message_config_user_name_serialze_vcall(message_t *msg, writer_t *writer)
+{
+ message_config_user_name_t *command_msg = container_of(msg, message_config_user_name_t, base);
+ return message_config_user_name_serialize(command_msg, writer);
+}
+
+static int _message_config_user_name_deserialize_vcall(message_t *msg, reader_t *reader)
+{
+ message_config_user_name_t *command_msg = container_of(msg, message_config_user_name_t, base);
+ return message_config_user_name_deserialize(command_msg, reader);
+}
+
+static void _message_config_user_name_destroy_vcall(message_t *msg)
+{
+ message_config_user_name_t *command_msg = container_of(msg, message_config_user_name_t, base);
+ message_config_user_name_destroy(command_msg);
+}
+
+void message_config_user_name_init(message_config_user_name_t *message)
+{
+ message_base_init(&message->base);
+
+ message_set_type(&message->base, MESSAGE_CONFIG_USER_NAME);
+
+ message->base.vtable.serialize = _message_config_user_name_serialze_vcall;
+ message->base.vtable.deserialize = _message_config_user_name_deserialize_vcall;
+ message->base.vtable.destroy = _message_config_user_name_destroy_vcall;
+
+ message->user_name = NULL;
+}
+
+void message_config_user_name_destroy(message_config_user_name_t *message)
+{
+ free((void*)message->user_name);
+ message->user_name = NULL;
+ message_base_destroy(&message->base);
+}
+
+int message_config_user_name_deserialize(message_config_user_name_t *message, reader_t *reader)
+{
+ int err = 0;
+
+ err |= message_base_deserialize(&message->base, reader);
+ err |= reader_read_string(reader, &message->user_name);
+
+ return err;
+}
+
+int message_config_user_name_serialize(message_config_user_name_t *message, writer_t *writer)
+{
+ int err = 0;
+
+ err |= message_base_serialize(&message->base, writer);
+ err |= writer_write_string(writer, message->user_name);
+
+ return err;
+}
+
+const char *message_config_user_name_get_name(message_config_user_name_t *message)
+{
+ return message->user_name;
+}
+
+void message_config_user_name_set_name(message_config_user_name_t *message, const char *name)
+{
+ free((void*)message->user_name);
+ message->user_name = strdup(name);
+}
+
+#endif /* end of include guard: MESSAGE_CONFIG_USER_NAME_C */
#include "messages/message_connect_accepted.h"
#include "messages/message_connect_refused.h"
#include "messages/message_keep_alive.h"
+#include "messages/message_config_user_name.h"
struct _message_factory {
union {
message_connect_accepted_t connect_accepted;
message_connect_refused_t connect_refused;
message_keep_alive_t keep_alive;
+ message_config_user_name_t config_user_name;
} messages;
};
case MESSAGE_BYE:
message_bye_init(&factory->messages.bye);
return &factory->messages.bye.base;
+ case MESSAGE_CONFIG_USER_NAME:
+ message_config_user_name_init(&factory->messages.config_user_name);
+ return &factory->messages.config_user_name.base;
default:
return NULL;
}