[Gambas-devel] [RFC] Gambas implementation of the pop3 protocol

Sebastian Kulesz sebikul at ...176...
Mon Aug 27 20:33:11 CEST 2012


On Mon, Aug 27, 2012 at 8:20 AM, Benoît Minisini
<gambas at ...1...> wrote:
> Le 27/08/2012 12:29, Fabien Bodard a écrit :
>> 2012/8/27 Benoît Minisini <gambas at ...1...>:
>>> Le 27/08/2012 11:23, Fabien Bodard a écrit :
>>>> This is i think a good way to define API
>>>>
>>>> I've used a little bit of your code, for sockets but i think you need
>>>> to manage more sockets errors.
>>>>
>>>> It's more slim and allow to do all it is possible with the pop protocole
>>>>
>>>> I'm just storing pop id, and message sizes as it nead a second call each time
>>>>
>>>
>>> Do you know that there is a subversion repository for developing? :-)
>>
>> Who ... Me ?
>
> Both of you.
> --
> Benoît Minisini
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Gambas-devel mailing list
> Gambas-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-devel

Okey, i feel i need to clarify some things.

First off Fabien, it's not that i'm being too rigid for the interface,
it's that with just words it's hard to explain what you were looking
for. There is no "Gambas Coding Style" page, so i ended up using "my
style". Your project helped me a *lot* (i also used another components
written in gambas to be consistent) to understand what you were
talking about. The interface now is extremely simple to use, and
replicates the *gambas way*.

I used a serious amount of snippets from your project that where only
structural changes. I also implemented a caching array, so if the _get
method is called twice, the same object as the first time is returned
(not recreated). This also allowed me to cache the text, unique id and
size. You will still see some duplicate commands in the Pop3Client and
_POPMessage classes. They are not really duplicates but different
implementations of the same command that can take an optional argument
(the message id in this case). Obviously, the Pop3Client
implementation goes without an argument and the _POPMessage uses the
stored message id. I also implemented a new Status property, so the
user can know in which state the pop client is according to the
specifications, and restrict some calls that are only allowed in a
specific state.

Attached is the "merge" of both projects, most probably you will find
some bugs, please let me know. I'm only missing a better error
management and document some parts of the code. I will do this later.

Regarding svn. As you said the gb.net.smtp would be renamed, moved,
cooked, etc. i wanted to first have a working thing before we(I) break
something. Also, branching in svn is really difficult and confusing
(otherwise it would be as easy as bzr branch ....bzr merge), so i
first wanted to test the changes locally, send a diff so others could
test and THEN do the commit. That's the reason of the Release For
Comment subject ;)

Thank you both for your feedback!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Pop3Client-0.0.1.tar.gz
Type: application/x-gzip
Size: 9913 bytes
Desc: not available
URL: <http://lists.gambas-basic.org/pipermail/devel/attachments/20120827/16bc484b/attachment.bin>


More information about the Devel mailing list