00001 #ifndef GM_MESSAGE_H
00002 #define GM_MESSAGE_H
00003
00004 #include <string>
00005
00006 namespace GNUMessenger
00007 {
00008 using namespace std;
00009
00010 class Contact;
00011
00012 class Message
00013 {
00014 public:
00015 Message(const string& msg, const Contact& sender)
00016 : m_message(msg), m_sender(sender), m_ID(newID()) {}
00017
00018 Message(const Message& message)
00019 {
00020 m_message = message.m_message;
00021 m_sender = message.m_sender;
00022 m_ID = message.m_ID;
00023 }
00024
00025 unsigned long getID() { return m_ID; }
00026 const string getMessage() { return m_message; }
00027 Contact getContact() { return m_sender; }
00028
00029 static unsigned long newID() { m_globalID = m_globalID++ % 1000000; return m_globalID; }
00030
00031 private:
00032
00033 static unsigned long m_globalID = 0;
00034 Contact m_sender;
00035 string m_message;
00036 unsigned long m_ID;
00037 };
00038
00039 }
00040
00041 #endif