Container for AtkPlug objects from other processes
Together with #AtkPlug, #AtkSocket provides the ability to embed
accessibles from one process into another in a fashion that is
transparent to assistive technologies. #AtkSocket works as the
container of #AtkPlug, embedding it using the method
atk.socket.Socket.embed. Any accessible contained in the #AtkPlug will
appear to the assistive technologies as being inside the
application that created the #AtkSocket.
The communication between a #AtkSocket and a #AtkPlug is done by
the IPC layer of the accessibility framework, normally implemented
by the D-Bus based implementation of AT-SPI (at-spi2). If that is
the case, at-spi-atk2 is the responsible to implement the abstract
methods atk.plug.Plug.getId and atk.socket.Socket.embed, so an ATK
implementor shouldn't reimplement them. The process that contains
the #AtkPlug is responsible to send the ID returned by
atk_plug_id() to the process that contains the #AtkSocket, so it
could call the method atk.socket.Socket.embed in order to embed it.
Container for AtkPlug objects from other processes
Together with #AtkPlug, #AtkSocket provides the ability to embed accessibles from one process into another in a fashion that is transparent to assistive technologies. #AtkSocket works as the container of #AtkPlug, embedding it using the method atk.socket.Socket.embed. Any accessible contained in the #AtkPlug will appear to the assistive technologies as being inside the application that created the #AtkSocket.
The communication between a #AtkSocket and a #AtkPlug is done by the IPC layer of the accessibility framework, normally implemented by the D-Bus based implementation of AT-SPI (at-spi2). If that is the case, at-spi-atk2 is the responsible to implement the abstract methods atk.plug.Plug.getId and atk.socket.Socket.embed, so an ATK implementor shouldn't reimplement them. The process that contains the #AtkPlug is responsible to send the ID returned by atk_plug_id() to the process that contains the #AtkSocket, so it could call the method atk.socket.Socket.embed in order to embed it.
For the same reasons, an implementor doesn't need to implement atk.object.ObjectAtk.getNAccessibleChildren and atk.object.ObjectAtk.refAccessibleChild. All the logic related to those functions will be implemented by the IPC layer.
See class@AtkPlug