Migrate the BMailComponent docs to the Haiku Book.
I've updated the docs to match the current BMailComponent, documented new functions, and cleaned up the MailComponent.h file to at least somewhat match our coding style. First in a series (there are 3 more old API docs on the Mail Kit in that "Public API" folder.)
This commit is contained in:
parent
cba277f2f9
commit
95c9effd68
@ -1,763 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>MailComponent</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF" LINK="#2222AA" BACKGROUND="../art/bodyBack.gif">
|
||||
<P><A NAME=BCursor></A> <!--TOP LINKS--></P>
|
||||
|
||||
<CENTER><TABLE BORDER=2 BGCOLOR="#FFDD88">
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BGCOLOR="#550033" CELLPADDING=5>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><A HREF="../index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>Mail
|
||||
Kit 2 Root</B></FONT></A></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><A HREF="index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>The
|
||||
Public API</B></FONT></A></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<HR NOSHADE>
|
||||
|
||||
</CENTER>
|
||||
|
||||
<P><!--TOP LINKS--></P>
|
||||
|
||||
<H1><FONT SIZE="+4">MailComponent</FONT></H1>
|
||||
|
||||
<BLOCKQUOTE><FONT FACE="helvetica"><B>Derived
|
||||
from:</B></FONT> none<BR>
|
||||
<FONT FACE="helvetica"><B>Declared in:</B></FONT>
|
||||
include/public/MailComponent.h<BR>
|
||||
<FONT FACE="helvetica"><B>Library:</B></FONT> libmail.so<BR>
|
||||
|
||||
<P><BR>
|
||||
</P>
|
||||
|
||||
<P>MailComponent is the base class for the vast majority of the
|
||||
public Mail Kit. It is, however, important to remember that
|
||||
MailComponent is not abstract, and is useful by itself. A
|
||||
MailComponent has the important quality of being able to read the
|
||||
headers of a message or component without instantiating whatever
|
||||
massive quantity of data might lie therein. This is useful
|
||||
primarily to determine the kind of data you are dealing with, so
|
||||
that the user can make a decision as to whether it should be
|
||||
shown.</P></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR NOSHADE>
|
||||
|
||||
</P>
|
||||
|
||||
<H2><FONT SIZE="+3" COLOR="#430000">C</FONT><FONT COLOR="#430000">onstructor
|
||||
and
|
||||
</FONT><FONT SIZE="+3" COLOR="#430000">D</FONT><FONT COLOR="#430000">estructor</FONT></H2>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=MailComponent></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">MailComponent()
|
||||
</FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><FONT SIZE="+1"><B><TT>MailComponent()</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Initializes the MailComponent and does nothing else.</P>
|
||||
|
||||
<P> </P></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="~MailComponent"></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">~MailComponent()
|
||||
</FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>virtual
|
||||
<FONT SIZE="+1"><B><TT>~MailComponent()</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Destroys the MailComponent. Does nothing of interest.</P></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR NOSHADE>
|
||||
|
||||
</P>
|
||||
|
||||
<H2><FONT SIZE="+3" COLOR="#430000">H</FONT><FONT COLOR="#430000">ook
|
||||
</FONT><FONT SIZE="+3" COLOR="#430000">F</FONT><FONT COLOR="#430000">unctions</FONT></H2>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=GetDecodedData></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">GetDecodedData () </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>virtual status_t
|
||||
<FONT SIZE="+1"><B><TT>GetDecodedData(</TT></B></FONT>BPositionIO
|
||||
*<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Retrieves the data contained in this component in canonical
|
||||
format and places this data in<FONT FACE="HELVETICA" COLOR="#991122"><I>
|
||||
data</I></FONT>. The various attachments subclasses implement this
|
||||
function to return decoded data, and PlainTextBodyComponent
|
||||
returns UTF8 text. MailComponent implements this function to do
|
||||
nothing and return <B>B_OK</B>.</P>
|
||||
|
||||
<P><B>Return Value:</B></P>
|
||||
|
||||
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.
|
||||
|
||||
<P>- Something else in the event of failure.</P></BLOCKQUOTE></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=SetDecodedData></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">SetDecodedData () </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>virtual status_t
|
||||
<FONT SIZE="+1"><B><TT>SetDecodedData(</TT></B></FONT>BPositionIO
|
||||
*<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Sets the content of this component to the canonical format data
|
||||
contained in <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>.
|
||||
Thus, an attachment subclass would accept a file here and encode
|
||||
it into the specified encoding. MailComponent implements this
|
||||
function to do nothing and return <B>B_OK</B>.</P>
|
||||
|
||||
<P><B>Return Value:</B></P>
|
||||
|
||||
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.
|
||||
|
||||
<P>- Something else in the event of failure.</P></BLOCKQUOTE></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=Instantiate></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">Instantiate () </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>virtual status_t
|
||||
<FONT SIZE="+1"><B><TT>Instantiate(</TT></B></FONT>BPositionIO
|
||||
*<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>,
|
||||
size_t <FONT FACE="HELVETICA" COLOR="#991122"><I>length</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Initializes this component to the RFC 822 format data in
|
||||
<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>,
|
||||
starting at <FONT FACE="HELVETICA" COLOR="#991122"><I>data
|
||||
</I></FONT>->Position(), for up to <FONT FACE="HELVETICA" COLOR="#991122"><I>length
|
||||
</I></FONT>bytes. Note that if you implement this function, your
|
||||
subclass may have taken up some of your data. As such, cache the
|
||||
position of <FONT FACE="HELVETICA" COLOR="#991122"><I>data
|
||||
</I></FONT>before calling your parent's version of
|
||||
<FONT SIZE="+1"><B><TT>Instantiate()</TT></B></FONT>, and then
|
||||
subtract the difference between the new position and your cached
|
||||
value, like this:</P>
|
||||
|
||||
<BLOCKQUOTE><CODE>off_t cache = data->Position();<BR>
|
||||
MailComponent::Instantiate(data,length);<BR>
|
||||
length -= (data->Position() - cache);</CODE></BLOCKQUOTE>
|
||||
|
||||
<P><B>Return Value:</B></P>
|
||||
|
||||
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.
|
||||
|
||||
<P>- <B>B_BAD_TYPE</B> if we cannot handle <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT FACE="HELVETICA">.</FONT></P>
|
||||
|
||||
<P>- Something else in the event of another kind of
|
||||
failure.</P></BLOCKQUOTE></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=Render></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">Render () </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>virtual status_t
|
||||
<FONT SIZE="+1"><B><TT>Render(</TT></B></FONT>BPositionIO
|
||||
*<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Renders the component into RFC 822 format and places the result
|
||||
in <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>,
|
||||
starting at <FONT FACE="HELVETICA" COLOR="#991122"><I>data
|
||||
</I></FONT>->Position().</P>
|
||||
|
||||
<P><B>Return Value:</B></P>
|
||||
|
||||
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.
|
||||
|
||||
<P>- Something else in the event of failure.</P></BLOCKQUOTE></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=MIMEType></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">MIMEType () </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>virtual status_t
|
||||
<FONT SIZE="+1"><B><TT>MIMEType(</TT></B></FONT>BMimeType
|
||||
*<FONT FACE="HELVETICA" COLOR="#991122"><I>mime</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Places the MIME type of the data into <FONT FACE="HELVETICA" COLOR="#991122"><I>mime</I></FONT>.</P>
|
||||
|
||||
<P><B>Return Value:</B></P>
|
||||
|
||||
<BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.
|
||||
|
||||
<P>- Something else in the event of failure.</P></BLOCKQUOTE></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR NOSHADE>
|
||||
|
||||
</P>
|
||||
|
||||
<H2><FONT SIZE="+3" COLOR="#430000">M</FONT><FONT COLOR="#430000">ember
|
||||
</FONT><FONT SIZE="+3" COLOR="#430000">F</FONT><FONT COLOR="#430000">unctions</FONT></H2>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=WhatIsThis></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">WhatIsThis() </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>MailComponent*
|
||||
<FONT SIZE="+1"><B><TT>WhatIsThis()</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Employs simple heuristics such as the MIME type to present you
|
||||
with an instance of a useful subclass of MailComponent. You can
|
||||
then use any of MailComponent's hook functions or RTTI calls to
|
||||
get more information. Bear in mind that the returned component is
|
||||
<I>not</I> set to any data. You must still <A HREF="#Instantiate">Instantiate()</A>
|
||||
it from whatever data this object was instantiated from.</P></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=IsAttachment></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">IsAttachment() </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>bool
|
||||
<FONT SIZE="+1"><B><TT>IsAttachment()</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Employs simple heuristics such as the MIME type and the
|
||||
Content-Disposition: header to determine whether this component is
|
||||
an attachment. Returns <B>true</B> if it is an attachment,
|
||||
<B>false</B> if not.</P></BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=SetHeaderField></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">SetHeaderField() </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>void
|
||||
<FONT SIZE="+1"><B><TT>SetHeaderField(</TT></B></FONT>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>,<BR>
|
||||
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>value</I></FONT>,<BR>
|
||||
uint32 <FONT FACE="HELVETICA" COLOR="#991122"><I>charset</I></FONT> = <B>B_ISO1_CONVERSION</B>,<BR>
|
||||
mail_encoding <FONT FACE="HELVETICA" COLOR="#991122"><I>encoding</I></FONT> = <B>quoted_printable</B>,<BR>
|
||||
bool <FONT FACE="HELVETICA" COLOR="#991122"><I>replace_existing</I></FONT>= <B>true</B>
|
||||
|
||||
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P></BLOCKQUOTE>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>void
|
||||
<FONT SIZE="+1"><B><TT>SetHeaderField(</TT></B></FONT>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>,<BR>
|
||||
BMessage *<FONT FACE="HELVETICA" COLOR="#991122"><I>structured_header</I></FONT>,<BR>
|
||||
bool <FONT FACE="HELVETICA" COLOR="#991122"><I>replace_existing</I></FONT>= <B>true</B>
|
||||
|
||||
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P></BLOCKQUOTE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Adds the specificed header of type <FONT FACE="HELVETICA" COLOR="#991122"><I>key
|
||||
</I></FONT>and with the UTF8 contents <FONT FACE="HELVETICA" COLOR="#991122"><I>value</I></FONT>
|
||||
to the component.
|
||||
<FONT SIZE="+1"><B><TT>SetHeaderField()</TT></B></FONT> converts
|
||||
any 8 bit data in <FONT FACE="HELVETICA" COLOR="#991122"><I>value</I></FONT>
|
||||
to <FONT FACE="HELVETICA" COLOR="#991122"><I>charset</I></FONT>
|
||||
(see the Support Kit on UTF8 for more information on this), and
|
||||
encodes it into 7 bit data using <FONT FACE="HELVETICA" COLOR="#991122"><I>encoding</I></FONT>.
|
||||
|
||||
If <FONT FACE="HELVETICA" COLOR="#991122"><I>replace_existing</I></FONT>
|
||||
is true, replaces any existing header of this type with this one,
|
||||
otherwise adds a second one.</P>
|
||||
<P>Thus, to set the header <CODE>To:</CODE> of some <B>MailComponent</B> <I>component</I> to foo@bar.com, we would do this:</P>
|
||||
<BLOCKQUOTE><CODE>
|
||||
component->SetHeaderField("To","foo@bar.com");
|
||||
</CODE></BLOCKQUOTE>
|
||||
<P>The version of the function that takes a BMessage sets a structured header. These are in the format
|
||||
<CODE>unlabeled; key=value; key=value</CODE>. The most common instance of this is the <CODE>Content-Type</CODE> header,
|
||||
where the MIME type is unlabeled, and various other information, such as character set, is specified in the
|
||||
key/value pairs. The format for <FONT FACE="HELVETICA" COLOR="#991122"><I>structured_header</I></FONT> is relatively
|
||||
simple: simply use <TT>BMessage::AddString(key,value)</TT> for each key/value pair. The only exception to this
|
||||
rule is the unlabeled data. For this, simply use the key <I>unlabeled</I>. Please note that the <I>charset</I> and <I>encoding</I> arguments
|
||||
defined for the text version of <TT>SetHeaderField</TT> is not provided here because structured headers cannot be encoded.</P>
|
||||
<P>Thus, a relatively standard <CODE>Content-Type</CODE> header would be specified as follows:
|
||||
<BLOCKQUOTE><CODE>
|
||||
BMessage structured;<BR>
|
||||
structured.AddString("unlabeled","text/plain");<BR>
|
||||
structured.AddString("charset","iso-8859-1");<BR>
|
||||
component->SetHeaderField("To",&structured);
|
||||
</CODE></BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=HeaderField></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">HeaderField() </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>const char *
|
||||
<FONT SIZE="+1"><B><TT>HeaderField(</TT></B></FONT>const
|
||||
char *<FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>,
|
||||
int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>
|
||||
=
|
||||
<B>0</B><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>status_t
|
||||
<FONT SIZE="+1"><B><TT>HeaderField(</TT></B></FONT>
|
||||
<BLOCKQUOTE>
|
||||
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>,<BR>
|
||||
BMessage *<FONT FACE="HELVETICA" COLOR="#991122"><I>structured_header</I></FONT>,<BR>
|
||||
int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> = <B>0</B>
|
||||
|
||||
<FONT SIZE="+1"><B><TT>)</TT></B></FONT></P></BLOCKQUOTE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Returns the header <FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>.
|
||||
If there is more than one header <FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>,
|
||||
use <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> to
|
||||
iterate through them. In the event that the specified header does
|
||||
not exist, <FONT SIZE="+1"><B><TT>HeaderField()
|
||||
</TT></B></FONT>returns <B>NULL</B>. Thus, to retrieve the contents of the <CODE>Subject:</CODE> field in
|
||||
UTF8 format, you would do this:</P>
|
||||
<BLOCKQUOTE><CODE>
|
||||
const char *subject = component->HeaderField("Subject");
|
||||
</CODE></BLOCKQUOTE>
|
||||
<P>The version of this function that takes a BMessage
|
||||
decodes whatever structured header may exist in <FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>
|
||||
and places it in <FONT FACE="HELVETICA" COLOR="#991122"><I>structured_header</I></FONT> according to the
|
||||
format laid out in <A HREF="#SetHeaderField">SetHeaderField()</A>. Returns <B>B_NAME_NOT_FOUND</B>
|
||||
if the header <FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT> does not exist. If it does exist,
|
||||
but is not structured, no error is returned; the entire contents of the header are placed in <I>unlabeled</I>.
|
||||
</P>
|
||||
|
||||
<P> </P></BLOCKQUOTE>
|
||||
|
||||
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=HeaderAt></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">HeaderAt() </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>const char *
|
||||
<FONT SIZE="+1"><B><TT>HeaderAt(</TT></B></FONT>
|
||||
int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Returns the key of the header at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>.
|
||||
Useful for iterating through all the headers. If <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>
|
||||
is out of range, <TT>HeaderAt()</TT> returns <B>NULL</B>.</P>
|
||||
|
||||
<P> </P></BLOCKQUOTE>
|
||||
|
||||
<P></TABLE></P>
|
||||
|
||||
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME=RemoveHeader></A><TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<P></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><FONT SIZE="+2">RemoveHeader() </FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
|
||||
<P> </P>
|
||||
|
||||
<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000>
|
||||
<TR>
|
||||
<TD>
|
||||
<P>const char *
|
||||
<FONT SIZE="+1"><B><TT>RemoveHeader(</TT></B></FONT>
|
||||
const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>Removes all headers with the key <FONT FACE="HELVETICA" COLOR="#991122"><I>key</I></FONT>.</P>
|
||||
|
||||
<P> </P></BLOCKQUOTE>
|
||||
|
||||
<P><!--TOP LINKS-->
|
||||
|
||||
<HR NOSHADE>
|
||||
|
||||
</P>
|
||||
|
||||
<CENTER><TABLE BORDER=2 BGCOLOR="#FFDD88">
|
||||
<TR>
|
||||
<TD>
|
||||
<P><TABLE BGCOLOR="#550033" CELLPADDING=5>
|
||||
<TR>
|
||||
<TD>
|
||||
<P><A HREF="../index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>Mail
|
||||
Kit 2 Root</B></FONT></A></P>
|
||||
</TD>
|
||||
<TD>
|
||||
<P><A HREF="index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>The
|
||||
Public API</B></FONT></A></P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</P>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
|
||||
<P><!--TOP LINKS--> <!-- Footer for Release 5 HTML Be Book --><BR>
|
||||
</P>
|
||||
|
||||
<CENTER><FONT SIZE="+3" COLOR="#555555"><I>Mail Daemon 2 API
|
||||
Documentation</I></FONT>
|
||||
|
||||
<P><FONT SIZE="+1" COLOR="#555555"><I>©2001 Dr. Zoidberg
|
||||
Enterprises</I></FONT></P></CENTER>
|
||||
</BODY>
|
||||
</HTML>
|
@ -788,6 +788,7 @@ INPUT = . \
|
||||
interface \
|
||||
keyboard \
|
||||
locale \
|
||||
mail \
|
||||
media \
|
||||
midi \
|
||||
midi2 \
|
||||
@ -807,6 +808,7 @@ INPUT = . \
|
||||
../../headers/os/interface \
|
||||
../../headers/private/interface \
|
||||
../../headers/os/locale \
|
||||
../../headers/os/mail \
|
||||
../../headers/os/media \
|
||||
../../headers/os/midi2 \
|
||||
../../headers/os/net \
|
||||
|
@ -43,6 +43,8 @@
|
||||
- The \ref locale includes classes to localize your application to
|
||||
different languages, timezones, number formatting conventions and
|
||||
much more.
|
||||
- The \ref mail includes classes to work with e-mail files, folders,
|
||||
protocols, and filters, as part of Haiku's unique mail handling system.
|
||||
- The \ref media provides a unified and consistent interface for media
|
||||
streams and applications to intercommunicate.
|
||||
- The \ref midi2 describes an interface to generating, processing,
|
||||
@ -135,6 +137,9 @@
|
||||
\defgroup locale Locale Kit
|
||||
\brief Collection of classes for localizing applications.
|
||||
|
||||
\defgroup mail Mail Kit
|
||||
\brief API for working with e-mail messages and protocols.
|
||||
|
||||
\defgroup media Media Kit
|
||||
\brief Collection of classes that deal with audio and video.
|
||||
|
||||
@ -453,9 +458,9 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE);
|
||||
|
||||
The Haiku Network Kit consists of:
|
||||
- A modular, add-ons based network stack
|
||||
- Two shared libraries, libnet.so and libnetapi.so
|
||||
- Two shared libraries, libnetwork.so and libnetapi.so
|
||||
- A stack driver, acting as interface between the network stack and
|
||||
libnet.so
|
||||
libnetwork.so
|
||||
- Basic network apps
|
||||
- A modular GUI preflet
|
||||
|
||||
|
287
docs/user/mail/MailComponent.dox
Normal file
287
docs/user/mail/MailComponent.dox
Normal file
@ -0,0 +1,287 @@
|
||||
/*
|
||||
* Copyright 2017 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Augustin Cavalier <waddlesplash>
|
||||
* Nathan Whitehorn
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/os/mail/MailComponent.h hrev51708
|
||||
* src/kits/mail/MailComponent.cpp hrev51708
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file MailComponent.h
|
||||
\ingroup mail
|
||||
\brief Provides the BMailComponent and BTextMailComponent classes.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\enum component_type
|
||||
\ingroup mail
|
||||
|
||||
Possible component types
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var component_type B_MAIL_PLAIN_TEXT_BODY
|
||||
|
||||
The plain text body of a message.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var component_type B_MAIL_SIMPLE_ATTACHMENT
|
||||
|
||||
Any other kind of multipart component.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var component_type B_MAIL_ATTRIBUTED_ATTACHMENT
|
||||
|
||||
An attachment that contains BeOS attributes.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var component_type B_MAIL_MULTIPART_CONTAINER
|
||||
|
||||
A multipart container attachment.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BMailComponent
|
||||
\ingroup mail
|
||||
\brief The base class for most of the Mail Kit.
|
||||
|
||||
Note that BMailComponent is not abstract, and is useful
|
||||
by itself. A BMailComponent has the important quality of
|
||||
being able to read the headers of a message or component without
|
||||
instantiating whatever massive quantity of data might lie therein.
|
||||
This is useful primarily to determine the kind of data you are dealing
|
||||
with, so that the user can make a decision as to whether it should be shown.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BMailComponent::BMailComponent(uint32 defaultCharSet = B_MAIL_NULL_CONVERSION)
|
||||
\brief Initializes a new BMailComponent with the specified character set.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BMailComponent::~BMailComponent()
|
||||
\brief Destructor.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn uint32 BMailComponent::ComponentType()
|
||||
\brief Returns the \c component_type of this object.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BMailComponent* BMailComponent::WhatIsThis()
|
||||
\brief Employs simple heuristics such as the MIME type to present you with
|
||||
an instance of a useful subclass.
|
||||
|
||||
You can then use any of BMailComponent's hook functions or RTTI calls to
|
||||
get more information. Bear in mind that the returned component is not set
|
||||
to any data. You must still Instantiate() it from whatever data this object
|
||||
was instantiated from.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn bool BMailComponent::IsAttachment()
|
||||
\brief Employs simple heuristics such as the MIME type and the Content-Disposition: header
|
||||
to determine whether this component is an attachment.
|
||||
|
||||
\returns true if it is an attachment, false if not.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BMailComponent::SetHeaderField(const char *key, const char *value,
|
||||
uint32 charset = B_MAIL_NULL_CONVERSION, mail_encoding encoding = null_encoding,
|
||||
bool replace_existing = true)
|
||||
\brief Adds the specified header of type \a key and with the \a value
|
||||
to the component.
|
||||
|
||||
Converts any 8 bit-data in \a value to
|
||||
\a charset and encodes it into 7-bit data using \a encoding. If
|
||||
\a replace_existing is true, replaces any existing header of this type with
|
||||
this one, otherwise adds a second one.
|
||||
|
||||
Thus, to set the header To: of some BMailComponent \a component to
|
||||
foo@example.com, we would do this:
|
||||
|
||||
\code
|
||||
component->SetHeaderField("To","foo@example.com");
|
||||
\endcode
|
||||
|
||||
If you want to delete a header, pass in a zero length or NULL string
|
||||
for the value field, or use \ref BMailComponent::RemoveHeader.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BMailComponent::SetHeaderField(const char *key,
|
||||
BMessage *structured_header, bool replace_existing = true)
|
||||
\brief Adds a structured header of type \a key to the component.
|
||||
|
||||
Structured headers are in the format unlabeled; key=value; key=value. The most common
|
||||
instance of this is the Content-Type header, where the MIME type is
|
||||
unlabeled, and various other information, such as character set, is
|
||||
specified in the key/value pairs. The format for structured_header is
|
||||
relatively simple: simply use BMessage::AddString(key,value) for each
|
||||
key/value pair. The only exception to this rule is the unlabeled data.
|
||||
For this, simply use the key unlabeled. Please note that the charset and
|
||||
encoding arguments defined for the text version of SetHeaderField is not
|
||||
provided here because structured headers cannot be encoded.
|
||||
|
||||
Thus, a relatively standard Content-Type header would be specified as
|
||||
follows:
|
||||
|
||||
\code
|
||||
BMessage structured;
|
||||
structured.AddString("unlabeled","text/plain");
|
||||
structured.AddString("charset","iso-8859-1");
|
||||
component->SetHeaderField("To",&structured);
|
||||
\endcode
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const char* BMailComponent::HeaderAt(int32 index) const
|
||||
\brief Returns the key of the \c header at index.
|
||||
|
||||
Useful for iterating through all the headers. If index is out of range,
|
||||
HeaderAt() returns NULL.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const char* BMailComponent::HeaderField(const char *key, int32 index = 0) const
|
||||
\brief Returns the header \a key.
|
||||
|
||||
If there is more than one header key, use \a index to iterate through them.
|
||||
In the event that the specified header does not exist, HeaderField()
|
||||
returns \c NULL. Thus, to retrieve the contents of the <code>Subject:</code>
|
||||
field, you would do this:
|
||||
|
||||
\code
|
||||
const char *subject = component->HeaderField("Subject");
|
||||
\endcode
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BMailComponent::HeaderField(const char *key,
|
||||
BMessage *structured_header, int32 index = 0) const
|
||||
\brief Returns the header \a key.
|
||||
|
||||
Decodes whatever
|
||||
structured header may exist in \a key and places it in \a structured_header
|
||||
according to the format laid out in SetHeaderField(). Returns
|
||||
\c B_NAME_NOT_FOUND if the header key does not exist. If it does exist,
|
||||
but is not structured, no error is returned; the entire contents of the
|
||||
header are placed in <code>unlabeled</code>.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BMailComponent::RemoveHeader(const char *key) const
|
||||
\brief Removes all headers with the key \a key.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BMailComponent::GetDecodedData(BPositionIO *data)
|
||||
\brief Retrieves the data contained in this component in canonical format
|
||||
and places it into \a data.
|
||||
|
||||
The various attachments subclasses implement this function to return
|
||||
decoded data, and \c BPlainTextBodyComponent returns UTF8 text. \c BMailComponent
|
||||
implements this function to do nothing and return \c B_OK.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BMailComponent::SetDecodedData(BPositionIO *data)
|
||||
\brief Sets the content of this component to the canonical format data
|
||||
contained in data.
|
||||
|
||||
Thus, an attachment subclass would accept a file here and encode it into
|
||||
the specified encoding. BMailComponent implements this function to do
|
||||
nothing and return \c B_OK.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BMailComponent::SetToRFC822(BPositionIO *data,
|
||||
size_t length, bool parse_now = false)
|
||||
\brief Sets this object from a component in RFC-822 format.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BMailComponent::RenderToRFC822(BPositionIO *data)
|
||||
\brief Renders the component into RFC-822 format.
|
||||
|
||||
It places the result in data, starting at data->Position().
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BMailComponent::MIMEType(BMimeType *mime)
|
||||
\brief Places the MIME type of the data into mime.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
@ -1,9 +1,10 @@
|
||||
#ifndef ZOIDBERG_MAIL_COMPONENT_H
|
||||
#define ZOIDBERG_MAIL_COMPONENT_H
|
||||
/* (Text)Component - message component base class and plain text
|
||||
**
|
||||
** Copyright 2001 Dr. Zoidberg Enterprises. All rights reserved.
|
||||
*/
|
||||
/*
|
||||
* Copyright 2001-2003 Dr. Zoidberg Enterprises. All rights reserved.
|
||||
* Copyright 2004-2017, Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _MAIL_COMPONENT_H
|
||||
#define _MAIL_COMPONENT_H
|
||||
|
||||
|
||||
#include <UTF8.h>
|
||||
@ -12,10 +13,11 @@
|
||||
|
||||
#include <mail_encoding.h>
|
||||
|
||||
|
||||
class BMimeType;
|
||||
|
||||
extern const char *kHeaderCharsetString;
|
||||
extern const char *kHeaderEncodingString;
|
||||
extern const char* kHeaderCharsetString;
|
||||
extern const char* kHeaderEncodingString;
|
||||
// Special field names in the headers which specify the character set (int32)
|
||||
// and encoding (int8) to use when converting the headers from UTF-8 to the
|
||||
// output e-mail format (rfc2047). For use with SetHeaderField when you pass
|
||||
@ -29,48 +31,45 @@ enum component_type {
|
||||
B_MAIL_MULTIPART_CONTAINER
|
||||
};
|
||||
|
||||
|
||||
class BMailComponent {
|
||||
public:
|
||||
BMailComponent(uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
||||
virtual ~BMailComponent();
|
||||
public:
|
||||
BMailComponent(
|
||||
uint32 defaultCharSet = B_MAIL_NULL_CONVERSION);
|
||||
virtual ~BMailComponent();
|
||||
|
||||
//------Info on this component
|
||||
uint32 ComponentType();
|
||||
BMailComponent *WhatIsThis();
|
||||
// Takes any generic MailComponent, and returns an instance
|
||||
// of a MailComponent subclass that applies to this case,
|
||||
// ready for instantiation. Note that you still have to
|
||||
// Instantiate() it yourself.
|
||||
bool IsAttachment();
|
||||
// Returns true if this component is an attachment, false
|
||||
// otherwise
|
||||
uint32 ComponentType();
|
||||
BMailComponent* WhatIsThis();
|
||||
bool IsAttachment();
|
||||
|
||||
void SetHeaderField(
|
||||
const char *key, const char *value,
|
||||
uint32 charset = B_MAIL_NULL_CONVERSION,
|
||||
mail_encoding encoding = null_encoding,
|
||||
bool replace_existing = true);
|
||||
// If you want to delete a header, pass in a zero length or NULL
|
||||
// string for the value field, or use RemoveHeader.
|
||||
void SetHeaderField(
|
||||
const char *key, BMessage *structured_header,
|
||||
bool replace_existing = true);
|
||||
void SetHeaderField(const char *key,
|
||||
const char *value,
|
||||
uint32 charset = B_MAIL_NULL_CONVERSION,
|
||||
mail_encoding encoding = null_encoding,
|
||||
bool replace_existing = true);
|
||||
void SetHeaderField(const char *key,
|
||||
BMessage *structured_header,
|
||||
bool replace_existing = true);
|
||||
|
||||
const char *HeaderAt(int32 index) const;
|
||||
const char *HeaderField(const char *key, int32 index = 0) const;
|
||||
status_t HeaderField(const char *key, BMessage *structured_header, int32 index = 0) const;
|
||||
const char* HeaderAt(int32 index) const;
|
||||
const char* HeaderField(const char *key,
|
||||
int32 index = 0) const;
|
||||
status_t HeaderField(const char *key,
|
||||
BMessage *structured_header,
|
||||
int32 index = 0) const;
|
||||
|
||||
status_t RemoveHeader(const char *key);
|
||||
status_t RemoveHeader(const char *key);
|
||||
|
||||
virtual status_t GetDecodedData(BPositionIO *data);
|
||||
virtual status_t SetDecodedData(BPositionIO *data);
|
||||
virtual status_t GetDecodedData(BPositionIO *data);
|
||||
virtual status_t SetDecodedData(BPositionIO *data);
|
||||
|
||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length, bool parse_now = false);
|
||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
||||
virtual status_t SetToRFC822(BPositionIO *data, size_t length,
|
||||
bool parse_now = false);
|
||||
virtual status_t RenderToRFC822(BPositionIO *render_to);
|
||||
|
||||
virtual status_t MIMEType(BMimeType *mime);
|
||||
virtual status_t MIMEType(BMimeType *mime);
|
||||
|
||||
protected:
|
||||
protected:
|
||||
uint32 _charSetForTextDecoding;
|
||||
// This is the character set to be used for decoding text
|
||||
// components, or if it is B_MAIL_NULL_CONVERSION then the character
|
||||
@ -81,7 +80,7 @@ class BMailComponent {
|
||||
// Container, Message, MIME, Text) child components and ends up
|
||||
// being used in the text components.
|
||||
|
||||
private:
|
||||
private:
|
||||
virtual void _ReservedComponent1();
|
||||
virtual void _ReservedComponent2();
|
||||
virtual void _ReservedComponent3();
|
||||
@ -137,4 +136,4 @@ class BTextMailComponent : public BMailComponent {
|
||||
uint32 _reserved[5];
|
||||
};
|
||||
|
||||
#endif /* ZOIDBERG_MAIL_COMPONENT_H */
|
||||
#endif // _MAIL_COMPONENT_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user