summaryrefslogtreecommitdiffstats
path: root/mimelib/doc/field.html
diff options
context:
space:
mode:
Diffstat (limited to 'mimelib/doc/field.html')
-rw-r--r--mimelib/doc/field.html305
1 files changed, 305 insertions, 0 deletions
diff --git a/mimelib/doc/field.html b/mimelib/doc/field.html
new file mode 100644
index 000000000..19736f271
--- /dev/null
+++ b/mimelib/doc/field.html
@@ -0,0 +1,305 @@
+<HTML>
+<HEAD>
+ <TITLE> DwField Man Page </TITLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<H2>
+ <FONT COLOR="navy"> NAME </FONT>
+</H2>
+<P>
+DwField -- Class representing a MIME header field
+<H2>
+ <FONT COLOR="navy"> SYNOPSIS </FONT>
+</H2>
+<PRE>class DW_EXPORT DwField : public <A HREF="msgcmp.html">DwMessageComponent</A> {
+
+ friend class DwHeaders;
+
+public:
+
+ <A HREF="field.html#DwField">DwField</A>();
+ <A HREF="field.html#DwField">DwField</A>(const DwField&amp; aField);
+ <A HREF="field.html#DwField">DwField</A>(const DwString&amp; aStr, DwMessageComponent* aParent=0);
+ virtual ~DwField();
+ const DwField&amp; <A HREF="field.html#op_eq">operator =</A> (const DwField&amp; aField);
+ virtual void <A HREF="field.html#Parse">Parse</A>();
+ virtual void <A HREF="field.html#Assemble">Assemble</A>();
+ virtual DwMessageComponent* <A HREF="field.html#Clone">Clone</A>() const;
+ DwFieldBody* <A HREF="field.html#FieldBody">FieldBody</A>() const;
+ const DwString&amp; <A HREF="field.html#FieldNameStr">FieldNameStr</A>() const;
+ const DwString&amp; <A HREF="field.html#FieldBodyStr">FieldBodyStr</A>() const;
+ DwField* <A HREF="field.html#Next">Next</A>() const;
+ void <A HREF="field.html#SetFieldBody">SetFieldBody</A>(DwFieldBody* aFieldBody);
+ void <A HREF="field.html#SetFieldNameStr">SetFieldNameStr</A>(const DwString&amp; aStr);
+ void <A HREF="field.html#SetFieldBodyStr">SetFieldBodyStr</A>(const DwString&amp; aStr);
+ void <A HREF="field.html#SetNext">SetNext</A>(const DwField* aField);
+ static DwField* <A HREF="field.html#NewField">NewField</A>(const DwString&amp; aStr,
+ DwMessageComponent* aParent);
+ static DwFieldBody* <A HREF="field.html#CreateFieldBody">CreateFieldBody</A>(const DwString&amp; aFieldName,
+ const DwString&amp; aFieldBody, DwMessageComponent* aParent);
+ static DwFieldBody* _CreateFieldBody(const DwString&amp; aFieldName,
+ const DwString&amp; aFieldBody, DwMessageComponent* aParent);
+ static DwField* (*<A HREF="field.html#sNewField">sNewField</A>)(const DwString&amp;, DwMessageComponent*);
+ static DwFieldBody* (*<A HREF="field.html#sCreateFieldBody">sCreateFieldBody</A>)(const DwString&amp; aFieldName,
+ const DwString&amp; aFieldBody, DwMessageComponent* aParent);
+
+protected:
+
+ DwString mFieldNameStr;
+ DwString mFieldBodyStr;
+ DwFieldBody* mFieldBody;
+ void <A HREF="field.html#_SetFieldBody">_SetFieldBody</A>(DwFieldBody* aFieldBody);
+
+public:
+
+ virtual void <A HREF="field.html#PrintDebugInfo">PrintDebugInfo</A>(ostream&amp; aStrm, int aDepth=0) const;
+ virtual void <A HREF="field.html#CheckInvariants">CheckInvariants</A>() const;
+
+protected:
+
+ void _PrintDebugInfo(ostream&amp; aStrm) const;
+};
+</PRE>
+<H2>
+ <FONT COLOR="navy"> DESCRIPTION </FONT>
+</H2>
+<P>
+<B><TT>DwField</TT></B> represents a header field as described in RFC-822.
+According to RFC-822, a field contains a field name and a field body. In
+MIME++, a <B><TT>DwField</TT></B> contains three elements: a
+<B><TT><A HREF="string.html">DwString</A></TT></B> that contains its field
+name, a <B><TT>DwString</TT></B> that contains its field body, and a
+<B><TT><A HREF="fieldbdy.html">DwFieldBody</A></TT></B> object that contains
+a broken-down (that is, parsed) version of its field body.
+<P>
+In the tree (broken-down) representation of message, a
+<B><TT>DwField</TT></B> object is always an intermediate node, having a parent
+node and a single child node. The parent node is the
+<B><TT><A HREF="headers.html">DwHeaders</A></TT></B> object that contains
+it. The child node is the <B><TT>DwFieldBody</TT></B> object it contains.
+<P>
+To get and set the field name, use the member functions
+<B><TT>FieldNameStr()</TT></B> and <B><TT>SetFieldNameStr()</TT></B>. To
+get and set the field body, use the member functions
+<B><TT>FieldBodyStr()</TT></B> and <B><TT>SetFieldBodyStr()</TT></B>. To
+get and set the <B><TT>DwFieldBody</TT></B> object, use
+<B><TT>FieldBody()</TT></B> and <B><TT>SetFieldBody()</TT></B>.
+<P>
+A <B><TT>DwField</TT></B> object can be included in a list of
+<B><TT>DwField</TT></B> objects; usually this is the list of
+<B><TT>DwField</TT></B> objects maintained by its parent
+<B><TT>DwHeaders</TT></B> object. To get the next <B><TT>DwField</TT></B>
+object in a list, use the member function <B><TT>Next()</TT></B>.
+<H2>
+ <FONT COLOR="navy"> Public Member Functions </FONT>
+</H2>
+<P>
+<FONT COLOR="teal"><B> <A NAME="DwField">DwField</A>() <BR>
+DwField(const DwField&amp; aField) <BR>
+DwField(const DwString&amp; aStr, DwMessageComponent* aParent=0) </B></FONT>
+<P>
+The first constructor is the default constructor, which sets the
+<B><TT>DwField</TT></B> object's field name and field body to the empty string,
+set its parent to <B><TT>NULL</TT></B>, and sets its
+<B><TT>DwFieldBody</TT></B> object to <B><TT>NULL</TT></B>.
+<P>
+The second constructor is the copy constructor, which performs a deep copy
+of <B><TT>aField</TT></B>. The parent of the new <B><TT>DwField</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>DwField</TT></B> object's string representation and sets
+<B><TT>aParent</TT></B> as its parent. The virtual member function
+<B><TT>Parse()</TT></B> should be called immediately after this constructor
+in order to parse the string representation. Unless it is
+<B><TT>NULL</TT></B>, <B><TT>aParent</TT></B> should point to an object of
+a class derived from <B><TT>DwHeaders</TT></B>.
+<P>
+<FONT COLOR="teal"><B> const DwField&amp; <A NAME="op_eq">operator =</A>
+(const DwField&amp; aField) </B></FONT>
+<P>
+This is the assignment operator, which performs a deep copy of
+<B><TT>aField</TT></B>. The parent node of the <B><TT>DwField</TT></B> object
+is not changed.
+<P>
+<FONT COLOR="teal"><B> virtual void <A NAME="Parse">Parse</A>() </B></FONT>
+<P>
+This virtual function, inherited from <B><TT>DwMessageComponent</TT></B>,
+executes the parse method for <B><TT>DwField</TT></B> objects. The parse
+method creates or updates the broken-down representation from the string
+representation. For <B><TT>DwField</TT></B> objects, the parse method parses
+the string representation, sets the values of the field name string and the
+field body string, and creates an instance of the appropriate subclass of
+<B><TT>DwFieldBody</TT></B>. This member function also calls the
+<B><TT>Parse()</TT></B> member function of its contained
+<B><TT>DwFieldBody</TT></B> object.
+<P>
+You should call this member function after you set or modify the string
+representation, and before you access the field name, the field body, or
+the contained <B><TT>DwFieldBody</TT></B> object.
+<P>
+This function clears the is-modified flag.
+<P>
+<FONT COLOR="teal"><B> virtual void <A NAME="Assemble">Assemble</A>()
+</B></FONT>
+<P>
+This virtual function, inherited from <B><TT>DwMessageComponent</TT></B>,
+executes the assemble method for <B><TT>DwField</TT></B> objects. The assemble
+method creates or updates the string representation from the broken-down
+representation. In more concrete terms, the assemble method builds the string
+representation from the field name and the string representation of the contained
+<B><TT>DwFieldBody</TT></B> object. This member function calls the
+<B><TT>Assemble()</TT></B> member function of its contained
+<B><TT>DwFieldBody</TT></B> object.
+<P>
+You should call this member function after you modify either the field name
+or the contained <B><TT>DwFieldBody</TT></B> object, and before you retrieve
+the string representation.
+<P>
+This function clears the is-modified flag.
+<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>DwField</TT></B> on the free store that has the same
+value as this <B><TT>DwField</TT></B> object. The basic idea is that of a
+virtual copy constructor.
+<P>
+<FONT COLOR="teal"><B> Dw<A NAME="FieldBody">FieldBody</A>* FieldBody() const
+</B></FONT>
+<P>
+Returns the <B><TT>DwFieldBody</TT></B> object contained by this
+<B><TT>DwField</TT></B> object. If there is no field body,
+<B><TT>NULL</TT></B> will be returned.
+<P>
+<FONT COLOR="teal"><B> const DwString&amp;
+<A NAME="FieldNameStr">FieldNameStr</A>() const </B></FONT>
+<P>
+Returns the field name of this header field as a string.
+<P>
+<FONT COLOR="teal"><B> const DwString&amp;
+<A NAME="FieldBodyStr">FieldBodyStr</A>() const </B></FONT>
+<P>
+Returns the field body of this header field as a string.
+<P>
+<FONT COLOR="teal"><B> DwField* <A NAME="Next">Next</A>() const </B></FONT>
+<P>
+Returns the next <B><TT>DwField</TT></B> object following this
+<B><TT>DwField</TT></B> object in the list contained in a
+<B><TT>DwHeaders</TT></B>. Returns <B><TT>NULL</TT></B> if this object is
+last in the list.
+<P>
+<FONT COLOR="teal"><B> void
+<A NAME="SetFieldBody">SetFieldBody</A>(DwFieldBody* aFieldBody) </B></FONT>
+<P>
+Sets the <B><TT>DwFieldBody</TT></B> object contained by this object.
+<P>
+<FONT COLOR="teal"><B> void
+<A NAME="SetFieldNameStr">SetFieldNameStr</A>(const DwString&amp; aStr)
+</B></FONT>
+<P>
+Sets the field name of this header field.
+<P>
+<FONT COLOR="teal"><B> void
+<A NAME="SetFieldBodyStr">SetFieldBodyStr</A>(const DwString&amp; aStr)
+</B></FONT>
+<P>
+Sets the field body of this header field.
+<P>
+<FONT COLOR="teal"><B> void <A NAME="SetNext">SetNext</A>(const DwField*
+aField) </B></FONT>
+<P>
+This <I>advanced</I> function sets <B><TT>aField</TT></B> as the next field
+following this field in the list of fields contained in the headers. Since
+<B><TT>DwHeaders</TT></B> contains member functions for adding
+<B><TT>DwField</TT></B> objects to its list, this function should be avoided
+for most applications.
+<P>
+<FONT COLOR="teal"><B> static DwField* <A NAME="NewField">NewField</A>(const
+DwString&amp; aStr, DwMessageComponent* aParent) </B></FONT>
+<P>
+Creates a new <B><TT>DwField</TT></B> object on the free store. If the static
+data member <B><TT>sNewField</TT></B> is <B><TT>NULL</TT></B>, this member
+function will create a new <B><TT>DwField</TT></B> and return it. Otherwise,
+<B><TT>NewField()</TT></B> will call the user-supplied function pointed to
+by <B><TT>sNewField</TT></B>, which is assumed to return an object from a
+class derived from <B><TT>DwField</TT></B>, and return that object.
+<P>
+<FONT COLOR="teal"><B> static DwFieldBody*
+<A NAME="CreateFieldBody">CreateFieldBody</A>(const DwString&amp; aFieldName,
+const DwString&amp; aFieldBody, DwMessageComponent* aParent) </B></FONT>
+<P>
+The static member function <B><TT>CreateFieldBody()</TT></B> is called from
+the <B><TT>Parse()</TT></B> member function and is responsible for creating
+a <B><TT>DwFieldBody</TT></B> object for this particular field. A typical
+scenario might go as follows: This member function examines the field name
+for this field, finds that it contains "To", creates a
+<B><TT>DwAddressList</TT></B> object to contain the field body, calls the
+<B><TT>Parse()</TT></B> member function for the
+<B><TT>DwAddressList</TT></B>, and sets the <B><TT>DwAddressList</TT></B>
+object as this <B><TT>DwField</TT></B> object's
+<B><TT>DwFieldBody</TT></B>.
+<P>
+If you want to override the behavior of
+<B><TT>CreateFieldBody()</TT></B>, you can do so by setting the public data
+member <B><TT>sCreateFieldBody</TT></B> to point to your own function.
+<B><TT>CreateFieldBody()</TT></B> first checks to see if
+<B><TT>sCreateFieldBody</TT></B> is <B><TT>NULL</TT></B>. If it is not,
+<B><TT>CreateFieldBody()</TT></B> will assume that it points to a user-supplied
+function and will call that function. If it is <B><TT>NULL</TT></B>,
+<B><TT>CreateFieldBody()</TT></B> will call
+<B><TT>_CreateFieldBody()</TT></B>, which actually creates the
+<B><TT>DwFieldBody</TT></B> object. You may call
+<B><TT>_CreateFieldBody()</TT></B> from your own function for fields you
+do not wish to handle.
+<P>
+<FONT COLOR="teal"><B> virtual void
+<A NAME="PrintDebugInfo">PrintDebugInfo</A>(ostream&amp; 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.
+<P>
+<FONT COLOR="teal"><B> virtual void
+<A NAME="CheckInvariants">CheckInvariants</A>() const </B></FONT>
+<P>
+Aborts if one of the invariants of the object fails. Use this member function
+to track down bugs.
+<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 DwField*
+(*<A NAME="sNewField">sNewField</A>)(const DwString&amp;, DwMessageComponent*)
+</B></FONT>
+<P>
+If <B><TT>sNewField</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>DwField</TT></B>.
+<P>
+<FONT COLOR="teal"><B> static DwFieldBody*
+(*<A NAME="sCreateFieldBody">sCreateFieldBody</A>)(const DwString&amp;
+aFieldName, const DwString&amp; aFieldBody, DwMessageComponent* aParent)
+</B></FONT>
+<P>
+See <B><TT><A HREF="#CreateFieldBody">CreateFieldBody</A>()</TT></B>.
+<H2>
+ <FONT COLOR="navy"> Protected Member Functions </FONT>
+</H2>
+<P>
+<FONT COLOR="teal"><B> void
+<A NAME="_SetFieldBody">_SetFieldBody</A>(DwFieldBody* aFieldBody)
+</B></FONT>
+<P>
+Sets the <B><TT>DwFieldBody</TT></B> object contained by this object. This
+function differs from <B><TT>SetFieldBody()</TT></B> in that it does not
+set the is-modified flag.
+<P>
+</BODY></HTML>