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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
<HTML>
<HEAD>
<TITLE> DwMessage Man Page </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H2>
<FONT COLOR="navy"> NAME </FONT>
</H2>
<P>
DwMessage -- Class representing an RFC-822/MIME message
<H2>
<FONT COLOR="navy"> SYNOPSIS </FONT>
</H2>
<PRE>class DW_EXPORT DwMessage : public <A HREF="entity.html">DwEntity</A> {
public:
<A HREF="message.html#DwMessage">DwMessage</A>();
<A HREF="message.html#DwMessage">DwMessage</A>(const DwMessage& aMessage);
<A HREF="message.html#DwMessage">DwMessage</A>(const DwString& aStr, DwMessageComponent* aParent=0);
virtual ~DwMessage();
const DwMessage& <A HREF="message.html#op_eq">operator =</A> (const DwMessage& aMessage);
virtual DwMessageComponent* <A HREF="message.html#Clone">Clone</A>() const;
static DwMessage* <A HREF="message.html#NewMessage">NewMessage</A>(const DwString& aStr,
DwMessageComponent* aParent);
static DwMessage* (*<A HREF="message.html#sNewMessage">sNewMessage</A>)(const DwString&, DwMessageComponent*);
public:
virtual void <A HREF="message.html#PrintDebugInfo">PrintDebugInfo</A>(ostream& aStrm, int aDepth=0) const;
protected:
void _PrintDebugInfo(ostream& aStrm) const;
};
</PRE>
<H2>
<FONT COLOR="navy"> DESCRIPTION </FONT>
</H2>
<P>
<B><TT>DwMessage</TT></B> represents an RFC-822/MIME <I>message</I>.
<P>
A <I>message</I> contains both a collection of <I>header fields</I> and a
<I>body</I>. In the terminology of RFC-2045, the general term for the
headers-body combination is <I>entity</I>. In MIME++,
<B><TT>DwMessage</TT></B> is a direct subclass of
<B><TT><A HREF="entity.html">DwEntity</A></TT></B>, and therefore contains
both a <B><TT><A HREF="headers.html">DwHeaders</A></TT></B> object and a
<B><TT><A HREF="body.html">DwBody</A></TT></B> object.
<P>
In the tree (broken-down) representation of message, a
<B><TT>DwMessage</TT></B> object is almost always a root node, having child
nodes but no tqparent node. The child nodes are the
<B><TT>DwHeaders</TT></B> object and the <B><TT>DwBody</TT></B> object it
contains. A <B><TT>DwMessage</TT></B> may sometimes be an intermediate node.
In this special case, the tqparent node is a <B><TT>DwBody</TT></B> object
of type "message/*" and the <B><TT>DwMessage</TT></B> object represents an
encapsulated message.
<P>
To access the contained <B><TT>DwHeaders</TT></B> object, use the inherited
member function <B><TT>DwEntity::Headers()</TT></B>. To access the contained
<B><TT>DwBody</TT></B> object, use the inherited member function
<B><TT>DwEntity::Body()</TT></B>.
<H2>
<FONT COLOR="navy"> Public Member Functions </FONT>
</H2>
<P>
<FONT COLOR="teal"><B> <A NAME="DwMessage">DwMessage</A>() <BR>
DwMessage(const DwMessage& aMessage) <BR>
DwMessage(const DwString& aStr, DwMessageComponent* aParent=0)
</B></FONT>
<P>
The first constructor is the default constructor, which sets the
<B><TT>DwMessage</TT></B> object's string representation to the empty string
and sets its tqparent to <B><TT>NULL</TT></B>.
<P>
The second constructor is the copy constructor, which performs a deep copy
of <B><TT>aMessage</TT></B>. The tqparent of the new
<B><TT>DwMessage</TT></B> object is set to <B><TT>NULL</TT></B>.
<P>
The third constructor copies <B><TT>aStr</TT></B> to the
<B><TT>DwMessage</TT></B> object's string representation and sets
<B><TT>aParent</TT></B> as its tqparent. The virtual member function
<B><TT>Parse()</TT></B> should be called immediately after this constructor
in order to parse the string representation.
<P>
<FONT COLOR="teal"><B> const DwMessage& <A NAME="op_eq">operator =</A>
(const DwMessage& aMessage) </B></FONT>
<P>
This is the assignment operator, which performs a deep copy of
<B><TT>aMessage</TT></B>. The tqparent node of the
<B><TT>DwMessage</TT></B> object is not changed.
<P>
<FONT COLOR="teal"><B> virtual DwMessageComponent*
<A NAME="Clone">Clone</A>() const </B></FONT>
<P>
This virtual function, inherited from <B><TT>DwMessageComponent</TT></B>,
creates a new <B><TT>DwMessage</TT></B> on the free store that has the same
value as this <B><TT>DwMessage</TT></B> object. The basic idea is that of
a ``virtual copy constructor.''
<P>
<FONT COLOR="teal"><B> static DwMessage*
<A NAME="NewMessage">NewMessage</A>(const DwString& aStr, DwMessageComponent*
aParent) </B></FONT>
<P>
Creates a new <B><TT>DwMessage</TT></B> object on the free store. If the
static data member <B><TT>sNewMessage</TT></B> is <B><TT>NULL</TT></B>, this
member function will create a new <B><TT>DwMessage</TT></B> and return it.
Otherwise, <B><TT>NewMessage()</TT></B> will call the user-supplied function
pointed to by <B><TT>sNewMessage</TT></B>, which is assumed to return an
object from a class derived from <B><TT>DwMessage</TT></B>, and return that
object.
<P>
<FONT COLOR="teal"><B> virtual void
<A NAME="PrintDebugInfo">PrintDebugInfo</A>(ostream& aStrm, int aDepth=0)
const </B></FONT>
<P>
This virtual function, inherited from <B><TT>DwMessageComponent</TT></B>,
prints debugging information about this object to <B><TT>aStrm</TT></B>.
It will also call <B><TT>PrintDebugInfo()</TT></B> for any of its child
components down to a level of <B><TT>aDepth</TT></B>.
<P>
This member function is available only in the debug version of the library.
<H2>
<FONT COLOR="navy"> Public Data Members </FONT>
</H2>
<P>
<FONT COLOR="teal"><B> static DwMessage*
(*<A NAME="sNewMessage">sNewMessage</A>)(const DwString&,
DwMessageComponent*) </B></FONT>
<P>
If <B><TT>sNewMessage</TT></B> is not <B><TT>NULL</TT></B>, it is assumed
to point to a user supplied function that returns an object from a class
derived from <B><TT>DwMessage</TT></B>.
<P>
</BODY></HTML>
|