kioslaves

imapcommand.h

Go to the documentation of this file.
00001 #ifndef _IMAPCOMMAND_H
00002 #define _IMAPCOMMAND_H
00003 /**********************************************************************
00004  *
00005  *   imapcommand.h  - IMAP4rev1 command handler
00006  *   Copyright (C) 2000 Sven Carstens
00007  *
00008  *   This program is free software; you can redistribute it and/or modify
00009  *   it under the terms of the GNU General Public License as published by
00010  *   the Free Software Foundation; either version 2 of the License, or
00011  *   (at your option) any later version.
00012  *
00013  *   This program is distributed in the hope that it will be useful,
00014  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  *   GNU General Public License for more details.
00017  *
00018  *   You should have received a copy of the GNU General Public License
00019  *   along with this program; if not, write to the Free Software
00020  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00021  *
00022  *   Send comments and bug fixes to
00023  *
00024  *********************************************************************/
00025 
00026 #include <qstringlist.h>
00027 #include <qstring.h>
00028 #include <qmap.h>
00029 
00037 class imapCommand
00038 {
00039 public:
00040 
00044   imapCommand ();
00052   imapCommand (const QString & command, const QString & parameter);
00058   bool isComplete ();
00064   const QString & result ();
00070   const QString & resultInfo ();
00076   const QString & parameter ();
00082   const QString & command ();
00088   const QString & id ();
00089 
00096   void setId (const QString &);
00102   void setComplete ();
00109   void setResult (const QString &);
00116   void setResultInfo (const QString &);
00123   void setCommand (const QString &);
00130   void setParameter (const QString &);
00139   const QString getStr ();
00140 
00146   static imapCommand *clientNoop ();
00156   static imapCommand *clientFetch (ulong uid, const QString & fields,
00157                                    bool nouid = false);
00168   static imapCommand *clientFetch (ulong fromUid, ulong toUid,
00169                                    const QString & fields, bool nouid =
00170                                    false);
00181   static imapCommand *clientFetch (const QString & sequence,
00182                                    const QString & fields, bool nouid =
00183                                    false);
00192   static imapCommand *clientList (const QString & reference,
00193                                   const QString & path, bool lsub = false);
00201   static imapCommand *clientSelect (const QString & path, bool examine =
00202                                     false);
00208   static imapCommand *clientClose();
00215   static imapCommand *clientStatus (const QString & path,
00216                                     const QString & parameters);
00224   static imapCommand *clientCopy (const QString & box,
00225                                   const QString & sequence, bool nouid =
00226                                   false);
00234   static imapCommand *clientAppend (const QString & box,
00235                                     const QString & flags, ulong size);
00241   static imapCommand *clientCreate (const QString & path);
00247   static imapCommand *clientDelete (const QString & path);
00253   static imapCommand *clientSubscribe (const QString & path);
00259   static imapCommand *clientUnsubscribe (const QString & path);
00264   static imapCommand *clientExpunge ();
00271   static imapCommand *clientRename (const QString & src,
00272                                     const QString & dest);
00279   static imapCommand *clientSearch (const QString & search, bool nouid =
00280                                     false);
00289   static imapCommand *clientStore (const QString & set, const QString & item,
00290                                    const QString & data, bool nouid = false);
00295   static imapCommand *clientLogout ();
00300   static imapCommand *clientStartTLS ();
00301 
00303 
00310   static imapCommand *clientSetACL ( const QString& box, const QString& user, const QString& acl );
00311 
00318   static imapCommand *clientDeleteACL ( const QString& box, const QString& user );
00319 
00325   static imapCommand *clientGetACL ( const QString& box );
00326 
00333   static imapCommand *clientListRights ( const QString& box, const QString& user );
00334 
00340   static imapCommand *clientMyRights ( const QString& box );
00341 
00343 
00350   static imapCommand *clientSetAnnotation ( const QString& box, const QString& entry, const QMap<QString, QString>& attributes );
00351 
00359   static imapCommand *clientGetAnnotation ( const QString& box, const QString& entry, const QStringList& attributeNames );
00360 
00365   static imapCommand *clientNamespace ();
00366 
00372   static imapCommand *clientGetQuotaroot ( const QString& box );
00373 
00380   static imapCommand *clientCustom ( const QString& command, const QString& arguments );
00381 
00382 protected:
00383   QString aCommand;
00384   QString mId;
00385   bool mComplete;
00386   QString aParameter;
00387   QString mResult;
00388   QString mResultInfo;
00389 
00390 private:
00391   imapCommand & operator = (const imapCommand &);
00392 };
00393 
00394 #endif