libairc is a feature-packed library, it was designed that way. Here is a comprehensive list of the things libairc can do:
- Priority Queue
Rather than a single queue for all outgoing messages, which gets easily blocked up, libairc allows a priority for each outgoing message. Messages with higher priorities are guaranteed to get sent out before messages with earlier priorities already in the queue.
- Interlacing Queueing
Inside of each priority, you can queue up a block of messages that need to be sent in order. libairc will alternate between the main queue and any interlaced queues added, sending out the first message in each. This allows you to get multiple lines out to the same people, or a single line out to many people, without clogging the main queue.
- Fully Configurable
libairc allows all options to be changed, from nick, login, and name to the time, priority, and even the message of the regular PING sent to the server to keep the connection open.
- Object Oriented Design
libairc uses objects as much as possible where it makes sense, without going overboard (Client, ClientFactory, ConnectInfo, ConnectInfoFactory, AbstractClient, ClientIntf, etc ;). Code such as WhoIs info = someUser.whois(); is the goal of libairc.