Advertisement
Guest User

Untitled

a guest
Jul 9th, 2013
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. // Default class - contains the complete message (untouched)
  2. class Message
  3. {
  4. public:
  5.     QString virtual getRawMessage() { return dataRawMessage; }
  6. protected:
  7.     QString dataRawMessage;
  8. };
  9.  
  10. // Join class - cointains the name of the joined user and the channel
  11. class MessageJoin : public Message
  12. {
  13. public:
  14.     MessageJoin(const QString &rawmessage, const QString &channel, const QString &user)
  15.     {
  16.         dataRawMessage = rawmessage;
  17.         dataChannel = channel;
  18.         dataUser = user;
  19.     }
  20.    
  21.     QString getChannel() { return dataChannel; }
  22.     QString getUser(){ return dataUser; }
  23.    
  24. private:
  25.     QString dataChannel;
  26.     QString dataUser;
  27. };
  28.  
  29. // Notice class - contains a message
  30. class MessageNotice : public Message
  31. {
  32. public:
  33.     MessageNotice(const QString &rawmessage, const QString &text)
  34.     {
  35.         dataRawMessage = rawmessage;
  36.         dataText = text;
  37.     }
  38.    
  39.     QString getText() { return dataText;}
  40.    
  41. private:
  42.     QString dataText;
  43. };
  44.  
  45. // Client code - print message and update UI
  46. void Client::messageReceived(Message *message)
  47. {
  48.     if(message)
  49.     {
  50.         MessageJoin *messagejoin;
  51.         MessagePart *messagepart;
  52.         MessageNotice *messagenotice;
  53.         if((messagejoin = dynamic_cast<MessageJoin *>(message)) != 0)
  54.         {
  55.             qDebug() << messagejoin->getUser() << " joined " << messagejoin->getChannel();
  56.             // Update UI: Add user
  57.         }
  58.         else if((messagenotice = dynamic_cast<MessageNotice *>(message)) != 0)
  59.         {
  60.             qDebug() << messagenotice->getText();
  61.             // Update UI: Display message
  62.         }
  63.         else
  64.         {
  65.             qDebug() << "Cannot cast message object";
  66.         }
  67.         delete message; // Message was allocated in the library and is not used anymore
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement