summaryrefslogtreecommitdiffabout
path: root/T42CallLog.h
blob: fa4a33129fba2ec4b6d6cfc4cae0c57de3ccc50f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class	CT42CallLogEntry : public CObject	{
public:
	enum {
		statusOk = 0, statusFailed, statusProcessed,
		statusNone
	};
	UINT m_Status;
	CTime m_Time;
	CString m_Caller;
	CString m_Callee;
	CString m_TTY;
	CTimeSpan m_Duration;
	CString m_Message;

	CT42CallLogEntry() : m_Status(statusNone) {}
	CT42CallLogEntry(CT42CallLogEntry& src) { Copy(src); }

	void Copy(const CT42CallLogEntry& src) {
		m_Status = src.m_Status;
		m_Time = src.m_Time;
		m_Caller = src.m_Caller; m_Callee = src.m_Callee;
		m_TTY = src.m_TTY;
		m_Duration = src.m_Duration;
		m_Message = src.m_Message;
	}
	CT42CallLogEntry& operator=(const CT42CallLogEntry& src) {
		Copy(src);
		return *this;
	}

	void Serialize(CArchive& ar) {
		if(ar.IsStoring()){
			ar << m_Status; 
			ar << m_Time;
			ar << m_Caller; ar << m_Callee; ar << m_TTY;
			ar << m_Duration;
			ar << m_Message;
		}else{
			ar >> m_Status;
			ar >> m_Time;
			ar >> m_Caller; ar >> m_Callee; ar >> m_TTY;
			ar >> m_Duration;
			ar >> m_Message;
		}
	}
};

inline void SerializeElements(CArchive& ar, CT42CallLogEntry* pElements, int nCount) {
	for(int tmp=0;tmp<nCount;tmp++)
		pElements[tmp].Serialize(ar);
}

typedef Klever::CBTreendex<CTime,CT42CallLogEntry,16,512> CT42CallLog;