ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/WinXPFAQPoll/Poller.cpp
Revision: 119
Committed: 2003-04-01T14:49:17-08:00 (22 years, 2 months ago) by douglas
File size: 2915 byte(s)
Log Message:
Added and implemented Poller::load() function.

File Contents

# User Rev Content
1 douglas 104 // Windows XP FAQ Poll
2     //
3     // Douglas Thrift
4     //
5     // Poller.cpp
6    
7     #include "Poller.h"
8    
9     Poller::Poller()
10     {
11 douglas 118 string mailbox = session->list("\"\" \"" + account.getMailbox() + "\"");
12    
13     if (mailbox.find(account.getMailbox()) == string::npos)
14     {
15     cerr << program << ": Mailbox does not exist: " << account.getMailbox()
16     << "\n";
17    
18     exit(1);
19     }
20 douglas 104 }
21    
22 douglas 118 void Poller::poll(bool nodelete, const string& file)
23 douglas 104 {
24 douglas 118 this->nodelete = nodelete;
25 douglas 119 this->file = file;
26    
27     load();
28    
29     //
30    
31     // save();
32 douglas 104 }
33 douglas 119
34     void Poller::load()
35     {
36     ifstream fin(file.c_str());
37     if (!fin.is_open())
38     {
39     ofstream fout(file.c_str());
40    
41     fout << "_find_\n"
42     << "reply=0\n"
43     << "news=0\n"
44     << "sig=0\n"
45     << "search=0\n"
46     << "link=0\n"
47     << "browse=0\n"
48     << "other=0\n"
49     << "_help_\n"
50     << "solved=0\n"
51     << "note=0\n"
52     << "link=0\n"
53     << "news=0\n"
54     << "lazy=0\n"
55     << "_improve_\n"
56     << "nothing=0\n"
57     << "links=0\n"
58     << "suggest=0\n";
59    
60     fout.close();
61    
62     fin.open(file.c_str());
63     }
64    
65     do
66     {
67     enum { FIND, HELP, IMPROVE } type;
68     string vote;
69     unsigned count;
70     string text;
71    
72     getline(fin, vote, '=');
73     if (debug) cerr << "vote = " << vote << "\n";
74    
75     if (vote == "_find_")
76     {
77     type = FIND;
78     continue;
79     }
80     else if (vote == "_help_")
81     {
82     type = HELP;
83     continue;
84     }
85     else if (vote == "_improve_")
86     {
87     type = IMPROVE;
88     continue;
89     }
90     else if (vote == "approved" || vote == "approve")
91     {
92     getline(fin, text);
93     }
94     else
95     {
96     fin >> count;
97     fin.get();
98     }
99    
100     switch (type)
101     {
102     case FIND:
103     if (vote == "reply")
104     {
105     find.reply = count;
106     }
107     else if (vote == "news")
108     {
109     find.news = count;
110     }
111     else if (vote == "sig")
112     {
113     find.sig = count;
114     }
115     else if (vote == "search")
116     {
117     find.search = count;
118     }
119     else if (vote == "link")
120     {
121     find.link = count;
122     }
123     else if (vote == "browse")
124     {
125     find.browse = count;
126     }
127     else if (vote == "other")
128     {
129     find.other = count;
130     }
131     else if (vote == "approved")
132     {
133     find.approved.push_back(text);
134     }
135     else if (vote == "approve")
136     {
137     find.approve.push_back(text);
138     }
139     break;
140     case HELP:
141     if (vote == "solved")
142     {
143     help.solved = count;
144     }
145     else if (vote == "note")
146     {
147     help.note = count;
148     }
149     else if (vote == "link")
150     {
151     help.link = count;
152     }
153     else if (vote == "news")
154     {
155     help.news = count;
156     }
157     else if (vote == "lazy")
158     {
159     help.lazy = count;
160     }
161     break;
162     case IMPROVE:
163     if (vote == "nothing")
164     {
165     improve.nothing = count;
166     }
167     else if (vote == "links")
168     {
169     improve.links = count;
170     }
171     else if (vote == "suggest")
172     {
173     improve.suggest = count;
174     }
175     else if (vote == "approved")
176     {
177     improve.approved.push_back(text);
178     }
179     else if (vote == "approve")
180     {
181     improve.approve.push_back(text);
182     }
183     break;
184     }
185     }
186     while (fin.good());
187    
188     fin.close();
189     }
190    
191     void Poller::save()
192     {
193     ofstream fout(file.c_str());
194    
195     //
196    
197     fout.close();
198     }