1 #include "TCAlert.h"
2 #include "TCStringArray.h"
3 #include "mystring.h"
4
5 #if defined(_MSC_VER) && _MSC_VER >= 1400 && defined(_DEBUG)
6 #define new DEBUG_CLIENTBLOCK
7 #endif // _DEBUG
8
TCAlert(const char * alertClass,const char * message,TCStringArray * extraInfo)9 TCAlert::TCAlert(
10 const char *alertClass,
11 const char *message,
12 TCStringArray *extraInfo):
13 m_alertClass(copyString(alertClass)),
14 m_message(copyString(message)),
15 m_extraInfo(TCObject::retain(extraInfo)),
16 m_sender(NULL)
17 {
18 }
19
TCAlert(const char * alertClass,const wchar_t * message,const ucstringVector & extraInfo)20 TCAlert::TCAlert(
21 const char *alertClass,
22 const wchar_t *message,
23 const ucstringVector &extraInfo /*= WStringList()*/):
24 m_alertClass(copyString(alertClass)),
25 m_message(NULL),
26 m_wMessage(message),
27 m_extraInfo(NULL),
28 m_ucExtraInfo(extraInfo),
29 m_sender(NULL)
30 {
31 }
32
~TCAlert(void)33 TCAlert::~TCAlert(void)
34 {
35 }
36
dealloc(void)37 void TCAlert::dealloc(void)
38 {
39 delete[] m_alertClass;
40 delete[] m_message;
41 TCObject::release(m_extraInfo);
42 TCObject::dealloc();
43 }
44
getMessage(void)45 const char *TCAlert::getMessage(void)
46 {
47 if (!m_message)
48 {
49 std::string temp;
50
51 wstringtostring(temp, m_wMessage);
52 m_message = copyString(temp.c_str());
53 }
54 return m_message;
55 }
56
getWMessage(void)57 const wchar_t *TCAlert::getWMessage(void)
58 {
59 if (!m_wMessage.size() && m_message && m_message[0])
60 {
61 mbstowstring(m_wMessage, m_message);
62 }
63 #ifdef NO_WSTRING
64 return NULL;
65 #else // NO_WSTRING
66 return m_wMessage.c_str();
67 #endif // NO_WSTRING
68 }
69
getMessageUC(void)70 CUCSTR TCAlert::getMessageUC(void)
71 {
72 #ifdef TC_NO_UNICODE
73 return getMessage();
74 #else // TC_NO_UNICODE
75 return getWMessage();
76 #endif // TC_NO_UNICODE
77 }
78
getExtraInfo(void)79 TCStringArray *TCAlert::getExtraInfo(void)
80 {
81 if (!m_extraInfo && m_ucExtraInfo.size() > 0)
82 {
83 m_extraInfo = new TCStringArray;
84 std::string temp;
85
86 for (ucstringVector::iterator it = m_ucExtraInfo.begin();
87 it != m_ucExtraInfo.end(); ++it)
88 {
89 #ifdef TC_NO_UNICODE
90 temp = *it;
91 #else // TC_NO_UNICODE
92 wstringtostring(temp, *it);
93 #endif // TC_NO_UNICODE
94 m_extraInfo->addString(temp.c_str());
95 }
96 }
97 return m_extraInfo;
98 }
99
getUCExtraInfo(void)100 const ucstringVector &TCAlert::getUCExtraInfo(void)
101 {
102 if (!m_ucExtraInfo.size() && m_extraInfo && m_extraInfo->getCount() > 0)
103 {
104 int i;
105 int count = m_extraInfo->getCount();
106
107 m_ucExtraInfo.resize(count);
108 for (i = 0; i < count; i++)
109 {
110 ucstring &temp = m_ucExtraInfo[i];
111 #ifdef TC_NO_UNICODE
112 temp = m_extraInfo->stringAtIndex(i);
113 #else // TC_NO_UNICODE
114 mbstowstring(temp, m_extraInfo->stringAtIndex(i));
115 #endif // TC_NO_UNICODE
116 }
117 }
118 return m_ucExtraInfo;
119 }
120