int main() { Conversation newConversation; newConversation = malloc(sizeof(struct conversation_t)); newConversation = conversationCreate(3); Message newMessage; char *random = "abcdegf" newMessage = messageTextCreate(302365697, random); conversationAddMessage(newConversation, newMessage); printf("%s\n", newConversation->messages_ptr[0]->content.text); printf("%s\n", newConversation->messages_ptr[0]->senderID); return 0; }
Message messageCopy(const Message message) { if (!message) { return NULL; } MessageType type =message->type; Message msg=NULL; if (type == MESSAGE_TEXT) { char* copy = malloc((strlen(message->content.text)+1)*sizeof(char)); if(!copy) return NULL; strcpy(copy,message->content.text); msg=messageTextCreate(message->senderID, copy); }else{ /* TODO: 1)maybe we should use messageImageCreate (there's a const problem) 2)if we initate it here, should we use malloc for data?\ in different words, we should copy the code from messageImageCreate */ msg = malloc(sizeof(*message)); if (!msg) { return NULL; } msg->senderID = message->senderID; msg->type = MESSAGE_IMAGE; msg->content.image.width = message->content.image.width; msg->content.image.height = message->content.image.height; for (int i = 0; i < msg->content.image.height; i++) { for (int j = 0; j < msg->content.image.width; j++) { msg->content.image.data[i][j] = message->content.image.data[i][j]; } } } return msg; }
Conversation conversationAddMessage(Conversation conversation, Message message) { if(message == NULL || conversation == NULL) { return CONVERSATION_NULL_ARGUMENT; } int currentIndex = 0; currentIndex = isConversationFull(conversation); if(currentIndex == -1) { return CONVERSATION_FULL; } Message newMessage; if(message->type == MESSAGE_TEXT) { newMessage = messageTextCreate(message->senderID, message->content.text); } else { //newMessage = messageImageCreate(message); } conversation->messages[currentIndex] = newMessage; return CONVERSATION_SUCCESS; }