Bincimap 2.0.16
Easy Imapping
Loading...
Searching...
No Matches
operator-logout.cc
Go to the documentation of this file.
1
7#include <string>
8#include <iostream>
9
10#include "iodevice.h"
11#include "iofactory.h"
12
13#include "mailbox.h"
14#include "recursivedescent.h"
15#include "session.h"
16#include "convert.h"
17
18#include "depot.h"
19#include "operators.h"
20
21using namespace ::std;
22using namespace Binc;
23
24//----------------------------------------------------------------------
26{
27}
28
29//----------------------------------------------------------------------
31{
32}
33
34//----------------------------------------------------------------------
35const string LogoutOperator::getName(void) const
36{
37 return "LOGOUT";
38}
39
40//----------------------------------------------------------------------
42{
46}
47
48//------------------------------------------------------------------------
50 Request &command)
51{
52 bincClient << "* BYE Binc IMAP shutting down" << endl;
53 bincClient << command.getTag() << " OK LOGOUT completed" << endl;
54 bincClient.flush();
55
56#ifdef BINCIMAPD
57 Mailbox *mailbox = 0;
58 if ((mailbox = depot.getSelected()) != 0) {
59 mailbox->closeMailbox();
60 delete mailbox;
61 }
62#endif
63
64 Session &session = Session::getInstance();
66
67 return NOTHING;
68}
69
70//----------------------------------------------------------------------
72{
73 Session &session = Session::getInstance();
74
75 if (c_in.getUidMode())
76 return REJECT;
77
79 if ((res = expectCRLF()) != ACCEPT) {
80 session.setLastError("Expected CRLF");
81 return res;
82 }
83
84 c_in.setName("LOGOUT");
85 return ACCEPT;
86}
virtual Mailbox * getSelected(void) const
Definition: depot.cc:183
virtual ParseResult parse(Request &) const
int getState(void) const
ProcessResult process(Depot &, Request &)
const std::string getName(void) const
virtual void closeMailbox(void)=0
const std::string & getTag(void) const
Definition: imapparser.cc:52
void setName(const std::string &s_in)
Definition: imapparser.cc:70
bool getUidMode(void) const
Definition: imapparser.cc:40
void setLastError(const std::string &error) const
Definition: session.cc:185
void setState(int n)
Definition: session.cc:46
@ NONAUTHENTICATED
Definition: session.h:36
@ AUTHENTICATED
Definition: session.h:37
static Session & getInstance(void)
Definition: session.cc:33
Declaration of miscellaneous convertion functions.
Declaration of the IODevice class.
Declaration of the IOFactory class.
#define bincClient
Definition: iofactory.h:31
Declaration of the Mailbox class (Mailbox is logical container)
Definition: bincimapd.cc:9
Operator::ParseResult expectCRLF(void)
Declaration of all operators.
Declaration of a recursive descent IMAP command parser.