Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdbool.h>
- #include "Conversation.h"
- int conversationLength(const Conversation conversation) {
- /*if (!conversation)
- return -1;
- if (!conversation.numMessages)
- return -1;
- int i = 0;
- int countMessages = 0;
- while (i < conversation->maxMessages) {
- if (conversation->message->content) // If NULL - NO MESSAGE - counter does not increase
- countMessages++;
- } */
- return conversation->numMessages;
- }
- void conversationDestroy(Conversation conversation) {
- int i;
- for (i = 0 ; i < conversation->numMessages; i++) // free ALL messages
- messageDestroy(conversation->messages[i]);
- free(conversation->info); // free ALL info
- free (conversation);
- }
- ConversationResult conversationAddMessage(Conversation conversation, Message message) {
- if(!conversation)
- return CONVERSATION_NULL_ARGUMENT;
- if(!message)
- return CONVERSATION_NULL_ARGUMENT;
- if(conversation->maxMessages == conversation->numMessages)
- return CONVERSATION_FULL;
- int i;
- conversation->messages[conversation->numMessages+1] = malloc(sizeof(*conversation->messages));
- if (!conversation->messages[conversation->numMessages+1])
- return CONVERSATION_OUT_OF_MEMORY;
- int ID;
- messageGetSenderID(message, &ID);
- MessageType outType;
- messageGetType(message, &outType);
- conversation->messages[conversation->numMessages+1] = messageCopy(message);
- for ( i = 0; i < conversation->numUsers; i++) { // Initiate for senderID
- if(conversation->info[i].senderID == ID) {
- (outType == MESSAGE_TEXT) ?
- conversation->info[i].numTextMessages++ :
- conversation->info[i].numImageMessages++;
- /*conversation.info[i] = conversation.numMessages+1;*/
- break;
- }
- }
- if (i == conversation->numUsers) {
- conversation->info = malloc(sizeof(*conversation->info));
- if (!conversation->info)
- return CONVERSATION_OUT_OF_MEMORY;
- conversation->info[i].senderID = ID;
- (outType == MESSAGE_TEXT) ?
- conversation->info[i].numTextMessages++ :
- conversation->info[i].numImageMessages++;
- conversation->numUsers++;
- }
- conversation->numMessages++;
- return CONVERSATION_SUCCESS;
- }
- int conversationNumberOfUsers(const Conversation conversation) {
- if(!conversation)
- return -1;
- return conversation->numUsers;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement