Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5. #include "Conversation.h"
  6.  
  7. int conversationLength(const Conversation conversation) {
  8.     /*if (!conversation)
  9.         return -1;
  10.     if (!conversation.numMessages)
  11.         return -1;
  12.     int i = 0;
  13.     int countMessages = 0;
  14.     while (i < conversation->maxMessages) {
  15.         if (conversation->message->content) // If NULL - NO MESSAGE - counter does not increase
  16.             countMessages++;
  17.     } */
  18.     return conversation->numMessages;
  19. }
  20.  
  21. void conversationDestroy(Conversation conversation) {
  22.     int i;
  23.     for (i = 0 ; i < conversation->numMessages; i++)    // free ALL messages
  24.         messageDestroy(conversation->messages[i]);
  25.     free(conversation->info);   // free ALL info
  26.     free (conversation);
  27. }
  28.  
  29. ConversationResult conversationAddMessage(Conversation conversation, Message message) {
  30.     if(!conversation)
  31.         return CONVERSATION_NULL_ARGUMENT;
  32.     if(!message)
  33.         return CONVERSATION_NULL_ARGUMENT;
  34.     if(conversation->maxMessages == conversation->numMessages)
  35.         return CONVERSATION_FULL;
  36.     int i;
  37.     conversation->messages[conversation->numMessages+1] = malloc(sizeof(*conversation->messages));
  38.     if (!conversation->messages[conversation->numMessages+1])
  39.         return CONVERSATION_OUT_OF_MEMORY;
  40.     int ID;
  41.     messageGetSenderID(message, &ID);
  42.     MessageType outType;
  43.     messageGetType(message, &outType);
  44.     conversation->messages[conversation->numMessages+1] = messageCopy(message);
  45.     for ( i = 0; i < conversation->numUsers; i++) {     // Initiate for senderID
  46.         if(conversation->info[i].senderID == ID) {
  47.             (outType == MESSAGE_TEXT) ?
  48.                     conversation->info[i].numTextMessages++ :
  49.                     conversation->info[i].numImageMessages++;
  50.             /*conversation.info[i] = conversation.numMessages+1;*/
  51.             break;
  52.         }
  53.     }
  54.     if (i == conversation->numUsers) {
  55.                 conversation->info = malloc(sizeof(*conversation->info));
  56.                 if (!conversation->info)
  57.                     return CONVERSATION_OUT_OF_MEMORY;
  58.                 conversation->info[i].senderID = ID;
  59.                 (outType == MESSAGE_TEXT) ?
  60.                                     conversation->info[i].numTextMessages++ :
  61.                                     conversation->info[i].numImageMessages++;
  62.                 conversation->numUsers++;
  63.     }
  64.     conversation->numMessages++;
  65.     return CONVERSATION_SUCCESS;
  66. }
  67.  
  68. int conversationNumberOfUsers(const Conversation conversation) {
  69.     if(!conversation)
  70.         return -1;
  71.     return conversation->numUsers;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement