<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><html>On Apr 28, 2008, at 11:26 PM, Mark Doliner wrote:</html><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; ">This API is a little weird... when we join a chat we give the PRPL a hash<br>table containing the chat info.  For Jabber this is the room name and the<br>server.  For AIM this is the room name and the exchange.<br><br>But your function only takes a name.  For Jabber I guess you're passing the<br>value of what would have been PurpleConversation->name?  This is weird to me<br>because it differs from the components hash table passed to join chat.  I'm<br>wondering how you envision this working for AIM?  Or, what would happen if you<br>try to join "testroom" on exchange 4 and "testroom" on exchange 5 and one of<br>them fails? <span class="Apple-style-span" style="color: rgb(20, 79, 174); -webkit-text-stroke-width: -1; ">I wonder if the function should take a 'components' hash table instead of or</span></span></blockquote><blockquote type="cite"><span class="Apple-style-span" style="color: rgb(0, 0, 0); ">in addition to the name?</span></blockquote><div><br></div><div>I started to write the API that way initially, actually, but discarded it as too complicated.  I think you're right that that complication is necessary; the AIM exchange example is a good one.</div><div><br></div><div>The easiest thing to do will be to keep the GHashTable used for chat creation around in the prpl's private data to be able to pass it back.  Does that sound reasonable?</div><div><br></div><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; ">Or maybe AIM should set PurpleConversation->name to<br>"roomname:exchange" or something.</span></blockquote></div><div><br></div>Seeing the way using the name would require parsing emphasizes that the hash table would be better.<div><br></div><div>-Evan<br><div><br></div></div></body></html>