Line 1: |
Line 1: |
| + | {{TOCright}} |
| == Overview == | | == Overview == |
| | | |
− | Collaboration in Sugar activities works using a set of services that run on the laptop, and APIs in the Sugar Python modules that wrap those services. The main services are the '''Telepathy connection managers''' and the '''[[Presence Service]]''' that coordinates them. | + | Collaboration in Sugar activities works using a set of services that run on the laptop, and APIs in the Sugar Python modules that wrap those services. The main services are the '''[[olpc:Telepathy|Telepathy]] connection managers''' and the '''[[olpc:Presence Service]]''' that coordinates them. |
| | | |
| [[Image:shared activites.png|center]] | | [[Image:shared activites.png|center]] |
| | | |
− | [http://telepathy.freedesktop.org/ Telepathy] is a system describing a generic interface for various kinds of communication. It is the underlying infrastructure used by Sugar for collaboration. Currently, two Telepathy implementations are used: [[Telepathy Gabble|Gabble]], for Jabber, and [[Telepathy Salut|Salut]] for serverless Jabber (a.k.a. link-local XMPP). The former is used when the school server is reachable; the latter in the simple mesh case. | + | [http://telepathy.freedesktop.org/ Telepathy] is a system describing a generic interface for various kinds of communication. It is the underlying infrastructure used by Sugar for collaboration. Currently, two Telepathy implementations are used: [[olpc:Telepathy Gabble|Gabble]], for Jabber, and [[olpc:Telepathy Salut|Salut]] for serverless Jabber (a.k.a. link-local XMPP). The former is used when the school server is reachable; the latter in the simple mesh case. |
| | | |
| == Advertisements and invitations == | | == Advertisements and invitations == |
Line 17: |
Line 18: |
| == Tubes == | | == Tubes == |
| | | |
− | [[Tubes]] are a means for shared activities to exchange data. There are currently two types of tubes: | + | [[olpc:Tubes]] are a means for shared activities to exchange data. There are currently two types of tubes: |
| | | |
| * '''D-Bus Tubes''' provide a D-Bus bus service that is shared between the participants in a shared activity, providing signals to all participants, and methods called on a particular participant. | | * '''D-Bus Tubes''' provide a D-Bus bus service that is shared between the participants in a shared activity, providing signals to all participants, and methods called on a particular participant. |
Line 25: |
Line 26: |
| === Using tubes in Sugar activities === | | === Using tubes in Sugar activities === |
| | | |
− | The [[Presence Service]] creates connection manager objects (Gabble and/or | + | The [[olpc:Presence Service]] creates connection manager objects (Gabble and/or |
− | Salut). It gets a Connection object (to the [[Jabber server]] in the case of | + | Salut). It gets a Connection object (to the [[olpc:Run a jabber server|Jabber server]] in the case of |
| Gabble). PS creates or gets a Tubes channel. For Python Activities, Sugar | | Gabble). PS creates or gets a Tubes channel. For Python Activities, Sugar |
| creates or joins a D-Bus tube automatically. | | creates or joins a D-Bus tube automatically. |
Line 32: |
Line 33: |
| The initiator of the activity should then call Tubes.OfferDBusTube to offer a Tube with a specific service name. When a buddy joins an activity, he will try to figure out which Tubes are available by calling Tubes.ListTubes() on the tubes channel (which he doesn't have to create anymore). Both OfferDBusTube and ListTubes result in a callback when the Tube becomes really available. Only then a working Tube is handed to the (shared) activity and it is possible to export objects on that bus and subscribe to signals etc. | | The initiator of the activity should then call Tubes.OfferDBusTube to offer a Tube with a specific service name. When a buddy joins an activity, he will try to figure out which Tubes are available by calling Tubes.ListTubes() on the tubes channel (which he doesn't have to create anymore). Both OfferDBusTube and ListTubes result in a callback when the Tube becomes really available. Only then a working Tube is handed to the (shared) activity and it is possible to export objects on that bus and subscribe to signals etc. |
| | | |
− | See [[Collaboration Tutorial]] for more on using Tubes. | + | See [[olpc:Collaboration Tutorial]] for more on using Tubes. |
| | | |
| === Who's who? === | | === Who's who? === |
Line 65: |
Line 66: |
| ** OfferDBusTube | | ** OfferDBusTube |
| ** OfferStreamTube | | ** OfferStreamTube |
| + | |
| + | [[Category:Collaboration]] |