gnu-social/classes
Brion Vibber 26fdf0c9d2 XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.
2010-01-21 16:42:50 -08:00
..
Avatar.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Config.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Confirm_address.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
Consumer.php Workflow for registering new OAuth apps pretty much done. 2010-01-14 02:41:04 +00:00
Deleted_notice.php check correct define (not backwards compatible) 2009-09-15 21:12:44 -04:00
Design.php use the new htmloutputter->style() function 2009-12-04 20:20:44 -05:00
Fave.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
File_oembed.php check before saving a thumbnail 2010-01-10 13:25:16 -08:00
File_redirection.php Revert "Remove more contractions" 2009-11-09 20:01:46 +01:00
File_thumbnail.php define LACONICA and accept LACONICA for backwards compatibility 2009-08-26 10:41:36 -04:00
File_to_post.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
File.php Merge branch 'master' into 0.9.x 2010-01-10 14:18:19 -08:00
Foreign_link.php Take token field out of foreign_link 2009-08-25 15:48:06 -04:00
Foreign_service.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
Foreign_subscription.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
Foreign_user.php change foreign_user.id to bigint (for Twitter, Facebook, etc.) 2009-06-24 14:44:02 -07:00
Group_alias.php define LACONICA and accept LACONICA for backwards compatibility 2009-08-26 10:41:36 -04:00
Group_block.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Group_inbox.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Group_member.php add events for subscribing to people and joining groups 2010-01-13 02:16:13 -08:00
Inbox.php Fix since_id and max_id API parameters for inbox-based loads; was failing if the exact id mentioned wasn't present in the inbox (or had been trimmed out) 2010-01-15 10:03:02 -08:00
Invitation.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
Location_namespace.php flip x flag on generated files 2009-10-21 22:43:41 -04:00
Login_token.php Redirect to a one-time-password when ssl and regular server are different 2010-01-09 15:26:06 -08:00
Memcached_DataObject.php Option to log slow db queries or all db queries 2010-01-21 11:07:52 -08:00
Message.php create a method for notification for new messages, and use it 2009-12-15 10:31:25 -05:00
Nonce.php Fix nonce usage in OAuth store 2009-03-07 12:55:09 -08:00
Notice_inbox.php Fix regressions in XMPP output during inbox refactoring 2010-01-13 18:17:36 +00:00
Notice_source.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
Notice_tag.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Notice.php Fix for background recalculation of groups; needs to get Group objects not IDs; also don't list any groups for repeats to match saveGroups behavior 2010-01-15 13:06:21 -08:00
Oauth_application_user.php Remove verifier from Oauth_application_user (not needed there) 2010-01-14 02:41:10 +00:00
Oauth_application.php Can now edit/change application icon 2010-01-14 02:41:08 +00:00
Profile_block.php define LACONICA and accept LACONICA for backwards compatibility 2009-08-26 10:41:36 -04:00
Profile_role.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Profile_tag.php fix problem with dupe tags in profile 2009-02-28 15:17:49 -08:00
Profile.php Revoke access token UI 2010-01-14 02:41:10 +00:00
Queue_item.php XMPP queued output & initial retooling of DB queue manager to support non-Notice objects. 2010-01-21 16:42:50 -08:00
Related_group.php some class files had x bit set 2009-05-22 21:11:46 -04:00
Remember_me.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
Remote_profile.php Fix regression in remote subscription; added hasRole() shadow method on Remote_profile. 2009-11-25 22:23:21 +00:00
Reply.php Ticket #1567 - API: Change before_id parameter to max_id 2009-05-29 16:32:55 -07:00
Session.php don't write session if it's unchanged 2009-10-09 10:39:56 -04:00
Sms_carrier.php change function headers to K&R style 2008-12-23 14:33:23 -05:00
status_network.ini Rename Laconica to StatusNet 2009-08-25 17:56:10 -04:00
Status_network.php Major refactoring of queue handlers to support running multiple sites in one daemon. 2010-01-12 20:45:09 -08:00
statusnet.ini XMPP queued output & initial retooling of DB queue manager to support non-Notice objects. 2010-01-21 16:42:50 -08:00
statusnet.links.ini Remove relationship: user_openid.user_id -> user.id. I don't think this 2009-11-25 23:55:03 +00:00
Subscription.php ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Token.php Add verifier and verified callback to token for OAuth 1.0a 2010-01-14 02:41:10 +00:00
User_group.php Consolidate group creation into static function in User_group 2009-11-18 15:54:24 -05:00
User_location_prefs.php Add magic formula to keep DB_DataObject from treating location prefs pkey as autoincrement 2009-12-30 08:56:43 -10:00
User_username.php Move Authorization and Authentication plugin structures into core, instead of as plugins. 2010-01-05 13:56:22 -05:00
User.php unimplement repeatedToMe() until we figure out how 2010-01-13 00:44:29 -08:00