* indicates abstract classes (in namespace Generics) + on leaves: indicates non-trivial subclassing indicates progress ;-) r indicates rfc2822/822 standard headers m indicates rfc2045/et al. proposed standard headers u indicates usefor headers + Base* // defines common interface + GUnstructured* // Base Class for unstructured header fields + Generic+ // can hold any header field r + Subject r + Comment m + ContentDescription + Organization // must also be registered as "Organisation" + UserAgent + GStructured* // Base Class for structured header fields + GAddress* // Base Class for address-type header fields + MailboxList* // doesn't allow groups: From r + From + SingleMailbox* // only allows a single mailbox: Sender r + Sender + AddressList* // allows groups: ReplyTo, To, Cc, Bcc r + ReplyTo r + To r + Cc r + Bcc + MailCopiesTo // ??? listed in usefor ??? r + ReturnPath+ // allows only a single angle-addr + GIdent* // Base Class for "Identification Fields" + GSingleIdent* // allows only a single msg-id r + MessageID m + ContentID u? + Supersedes r + InReplyTo r + References + GToken* // Base Class for single-token headers: CTE m + ContentTransferEncoding + GDotAtom* // Base Class for single-dot-atom headers: MIME-Version m + MIMEVersion + GPhraseList* // Base Class for phrase list headers: Keywords r + Keywords + GParametrized* // Base Class for parametrizable headers: Content-type + GContentType* m + ContentType + GTokenWithParameterList* m + ContentDisposition + GDate* // Base class for date headers: Date r + Date + GNameValPairs* // Base Class for name-value list headers: Received r + Received common interface: bool isValid() bool isEmpty() const char* type(); Entity* parent(); void setParent( Content* ); // // input/output: // // 7bit: TQCString as7BitString() bool from7BitString( const TQCString & ) // deep copy bool from7BitString( const char * begin, const char * end ) // shallow bool from7BitString( const char * begin, int length ) // shallow bool from7BitString( TQByteArray &, int pos, int len ) // shallow TQStringList validate( const TQCString & str ); // for dialogs: TQString asUnicodeString() bool fromUnicodeString() TQStringList validate( const TQString & str ); // for reader display: TQString asHtmlString() bool fromHtmlString() // ???