[week 6] - mail as a desktop service



This week I am at GUADEC.  I have been lucky to see a great number of
talks and talk with some great people.

I have not had an unproductive week, however.

Over the past week, I have written the code to connection asyncronously
to an IMAP server and do some -basic- IMAP parsing.

>From latest git commit (

IMAPFolder
tracks overall folder uid list
count of messages in the folder
has data_in and data_out GIO streams
change_state ()
  checks if folder is in the IDLE state and
  sends DONE command if necessary to perform
  another command
new_search ()
  creates a new search object
  changes state to 'searchlist' with the tag of the

Using a basic state variable on the IMAPFolder object to
control behaviour depending on the current state.
Eg. ignore EXISTS and EXPUNGED while waiting for the
results of an IMAP serach.

IMAPSearch
keeps list of messages that match a search string
store callback reference for returning data to cache or
  other interested party
update ()
  update the uid_list in the IMAPSearch and run the
    callback function to return the new data

Basic logic for parsing IMAP messages is nearly complete.

The async line reader provided by GIO pipes data into the
parser, which will respond to the commands as required.

Working:
Logging in
select folder
download and store list of message UIDs
respond to EXISTS and EXPUNGED while IDLE

Not Working:
EXISTS and EXPUNGED while in the mainlist (fetch main UID list)
  and searchlist (fetch search UID list) states


-  
Ian Marcinkowski
ian desrt ca
Gnome - Mail as a Desktop Service
http://blog.marcinkowski.ca
git://git.desrt.ca/marcinmail




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]