Protocol Plugin ID

A protocol plugin will be identified by an ID that is assigned by the daemon. This ID is used by all plugins to interact with the protocol plugin. When a plugin wishes to send an event to the plugin, it must include the protocol plugin ID.

Additionally, each user in Licq will be linked to a specific protocol ID. This is required because Licq will now support multiple simultaneous accounts of the same protocol. Which means that one buddy (user) may be on multiple different accounts at the same time. The protocol ID will be a member of the user class to specify which instance of the protocol plugin the user is linked to. This value will be written to the user's config file.

Naming Convention

One way is to name the plugins are with numbers, such as <pluginName>_<ownerIdNum>. The owner file only needs the protocol name, the number is part of the string ID in the config file. That way the config file would be like:

Owner File
==========

Owner1.ID = 16325723
Owner1.Password = secret
Owner1.Protocol = ICQ
Owner2.ID = aasdf@msn.com
Owner2.Password = msnrulez
Owner2.Protocol = MSN

User File
=========
Name = User
ProtocolID = ICQ_1

I'm open for more suggestions on how to handle this, so please discuss! (->ProtocolPluginId_Discussion)