Op maandag 29 mei 2006 23:16, schreef Youness Alaoui: > no answers on this subject ? I'm still waiting for everyone's feedback on > this so I can start a bit of code... I have some code done, but I don't > want to commit it... > Harry, u there ? > Yes, but too tired for a complete reply now... So, just a short reply now...
I also think that amsn2 should be a module rather than a branch. Also I like the directory layout you propose. The idea about the Capabilities seems very nice too. About the data part, I already took care of that in earlier e-mails (at least, I thought about in making the designs), but indeed, did not make that explicit. Also you are extending it to other things than we discussed (we talked about contacts/groups mainly, now you also mention things like nudges and winks), and you are right, those should have a data layer too, between the protocol and the UI. Okay, I'll reply more in-depth later. Harry > KKRT > > On Sat, 27 May 2006 04:25:06 -0400, Youness Alaoui > > <[EMAIL PROTECTED]> wrote: > > Hi, > > I wanted a separate mail to explain some more the design I have in mind, > > don't worry it will be fast since I'm tired :p > > I'm thinking about having a new amsn2 module, in which this whole new cl > > thing would go, it should be compatible with amsn1 code, so we could plug > > it in and out as much as we want. first my idea is to have some structure > > like this : > > > > amsn2 > > > > +---- GUI > > > > | +---- clgroup.tcl > > | +---- clcontact.tcl > > | +---- clwidget.tcl > > > > +---- Data > > > > | +---- account.tcl > > | +---- group.tcl > > | +---- contact.tcl > > | +---- groupmanager.tcl > > | +---- eventsystem.tcl > > > > +---- Protocol > > > > | +---- telepathy2amsn.tcl > > | +---- telepathy > > | > > | +------- ?????? > > > > +---- Core > > > > +---- ???? > > > > > > We could divide into more subdirs.. the protocol dir could have the > > msnp13.tcl file, the msncam.tcl, msnp2p.tcl, etc... the GUI could have a > > Dialogs subdir with all our dialogs (add new smiley, add group, add > > contact, check for newer version, etc...), and a Preferences subdir for > > our preferences window for example... or it could go into Dialogs > > The Data is only to store data > > the Protocol dir could be used in order to hook the new data and gui to > > the current amsn, until the MSN connection manager for telepathy is > > created, in the meantime, if our design is good enough, I think we should > > be able to use the jabber connection manager instead of MSN without even > > noticing the difference... > > This reminds me!!!! I thought about an intermediate class that we'd call > > Capabilities.. damn, wait, I first need to say something else... > > ok, so far, we've always been talking about "separate the protocol and > > the > > GUI, separate the protocol and the GUI", but we never talked about the > > data in itself... if the protocol sends us "hey, you have a new contact > > named [EMAIL PROTECTED]" what do you want to do with it ? you want the GUI > > to catch that then what ? show it ? then how you update it ? you have to > > keep stored somewhere who is who, if he's blocked etc... that's what > > we've > > been talking in the other thread, kind of... > > now, if we abstract the data from the GUI, it means we could have ANY > > GUI, > > it would query our common interface/API for the Data, so it will always > > know what your account is, etc... > > it abstracts the protocol into an API (to quote Harry), and the protocol > > underlying there ? who knows what it is, could be msn, could be jabber, > > as > > long as a 'contact' is a 'contact' and a groupmanager is a > > groupmanager... > > Now, here's when we enter the big game, does jabber have winks ? I don't > > know (I never used/tried/seen jabber, so no idea, but let's assume > > everything I say is true), assuming it doesn't have winks, cool, so our > > Data/winks.tcl file will not be used (don't get it wrong, it's not the > > implementation of the winks in that file, NOT AT ALL.. it's only > > abstracting the protocol into an API, so you actually receive an event > > WinkReceived, and you get a 'wink' object in argument to which you do > > [$wink getDestination] or [$wink getWinkAsFlashMovie] or [$wink > > getWinkAsMpeg] (or Gif), or [$wink doYouSupportGifs] or [$wink > > getWinkPreview], etc...), ok you understand ? our poor winks.tcl won't be > > used in jabber, but oh well, assuming jabber has winks, but it's mpeg > > movies, not flash movies.. so we should call getWinkAsMpeg not > > getWinkAsFlashMovie... oh, so confusing... ok, assume we have no winks in > > jabber but we have something else that is nudges, and MSN doesn't support > > nudges (I know, it does, but assume I'm all mighty), so your > > Data/nudge.tcl (again, only abstracted info about the nudge, like the > > destination, the received time, whatever... it's not the protocol nor > > the > > GUI implementation of it)... > > so your GUI, it doesn't know what to do.. you're chatting with a user, > > you > > send a wink, you get an error, you nudge, no prob, with another user, the > > winks work, the nudges don't... (assuming you have one big contact list > > managing multiple $account objects from different protocols)... so what > > do > > you do in that case ? > > oh, that's where my Capabilities class comes in place. you open the > > chatwinow object, it has a reference to a contact, then it does > > set account [$contact cget -parent] > > set protocol [$account cget -protocol] > > set caps [$protocol getCapabiltiies] > > set enableNudgeButton [$caps supportsNudge] > > > > this is a very explicit example, but the Capabilities object should be > > used for almost everything, to know if you have the right to block a user > > or not for example (assuming jabber doesn't support blocking a contact), > > if you have the right to leave an offline message, etc... > > it's Capabilities, but can be considered, in a java perspective, as a > > SecurityManager (although I know very little in that domain), it tells > > you > > what you can do or not, it's specific to the protocol, not an account, > > nor > > a contact. > > > > What do you think ? I know this design is very poor so far, which is why > > I'm sending it... hoping you'll send meaningfull comments! > > > > Thanks all, > > Youness. > > > > > > > > _______________________________________________ > > Amsn-devel mailing list > > Amsn-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/amsn-devel _______________________________________________ Amsn-devel mailing list Amsn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amsn-devel