view .hgtags @ 2144:1d3f73e065e1

core, jp: component handling + client handling refactoring: - SàT can now handle components - plugin have now a "modes" key in PLUGIN_INFO where they declare if they can be used with clients and or components. They default to be client only. - components are really similar to clients, but with some changes in behaviour: * component has "entry point", which is a special plugin with a componentStart method, which is called just after component is connected * trigger end with a different suffixes (e.g. profileConnected vs profileConnectedComponent), so a plugin which manage both clients and components can have different workflow * for clients, only triggers of plugins handling client mode are launched * for components, only triggers of plugins needed in dependencies are launched. They all must handle component mode. * component have a sendHistory attribute (False by default) which can be set to True to allow saving sent messages into history * for convenience, "client" is still used in method even if it can now be a component * a new "component" boolean attribute tells if we have a component or a client * components have to add themselve Message protocol * roster and presence protocols are not added for components * component default port is 5347 (which is Prosody's default port) - asyncCreateProfile has been renamed for profileCreate, both to follow new naming convention and to prepare the transition to fully asynchronous bridge - createProfile has a new "component" attribute. When used to create a component, it must be set to a component entry point - jp: added --component argument to profile/create - disconnect bridge method is now asynchronous, this way frontends can know when disconnection is finished - new PI_* constants for PLUGIN_INFO values (not used everywhere yet) - client/component connection workflow has been moved to their classes instead of being a host methods - host.messageSend is now client.sendMessage, and former client.sendMessage is now client.sendMessageData. - identities are now handled in client.identities list, so it can be updated dynamically by plugins (in the future, frontends should be able to update them too through bridge) - profileConnecting* profileConnected* profileDisconnected* and getHandler now all use client instead of profile
author Goffi <goffi@goffi.org>
date Sun, 12 Feb 2017 17:55:43 +0100
parents 58a44574c9ad
children f3bbb6822ab3
line wrap: on
line source

d660d1e5cee410bf9ac15b89ceb93543bcff0a6f SàT v0.0.2
b95550704b4f965c9dca5f6681186bf8a9b64074 SàT v0.0.3
b778622b87337785252d47d2b3c4fe3085a37ab4 SàT v0.1.0
53aa958a2d3d6451ae75610e3c6fb947d3d6f21b SàT v0.1.1
cc2afb92ab93a4c6399ca9b6cdc5224878a57a24 SàT v0.2.0
df6b9b881f0e9f335483c986b00fd58f2ed6164a SàT v0.3.0
12cfa23c6ab9235dddb2e8887eb0fe90fc98da75 SàT v0.4.0
f93e917be3f41a254a4612da22ed9fc5e0209f80 SàT v0.4.1
a090e5ee83c2c2d9d110c7516c3d74573426a97b SàT v0.5.0
008c8ccd5dcc4c47578ee7190e6823186720c864 SàT v0.5.1
21e6d11615eaeb7e03bacf4eb53e5c3c5d54ce08 0.6.0
b075c5a576ef3ce628e30b0ce02bf00ec35a3c4c 0.6.1