mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-01 06:25:59 +01:00
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
Entity Capabilities
|
|
===================
|
|
|
|
[Back](index.md)
|
|
|
|
This section details the usage of Smacks implementation of Entity
|
|
Capabilities.
|
|
|
|
**XEP related:** [XEP-0115: Entity Capabilities](http://xmpp.org/extensions/xep-0115.html)
|
|
|
|
**Description**
|
|
|
|
Entity Capabilities is an XMPP Protocol extension, which, in order to minimize
|
|
network impact, caches the capabilities of XMPP entities. Those capabilities
|
|
are determined with the help of the Service Discovery Protocol
|
|
([XEP-0030](http://xmpp.org/extensions/xep-0030.html)).
|
|
|
|
**Usage**
|
|
|
|
Entity Capabilities work silently in the background when enabled. If the remote
|
|
XMPP entity does not support XEP-0115 but XEP-0030 then XEP-0030 mechanisms
|
|
are transparently used. You can enable or disable Entity Capabilities by using
|
|
_**EntityCapsManager**_.
|
|
|
|
The cache used by Smack for Entity Capabilities is non-persistent as default.
|
|
That is, the cache only uses memory. But it is also possible to set a
|
|
persistent Entity Capabilities cache, which is recommended.
|
|
|
|
**Examples**
|
|
|
|
Enable Entity Capabilities
|
|
|
|
```
|
|
// Get an instance of entity caps manager for the specified connection
|
|
EntityCapsManager mgr = EntityCapsManager.getInstanceFor(connection);
|
|
// Enable entity capabilities
|
|
mgr.enableEntityCaps();
|
|
```
|
|
|
|
Configure a persistent cache for Entity Capabilities
|
|
|
|
```
|
|
// Get an instance of entity caps manager for the specified connection
|
|
EntityCapsManager mgr = EntityCapsManager.getInstanceFor(connection);
|
|
// Create an cache, see smackx.entitycaps.cache for pre-defined cache implementations
|
|
EntityCapsPersistentCache cache = new SimpleDirectoryPersistentCache(new File("/foo/cachedir"));
|
|
// Set the cache
|
|
mgr.setPersistentCache(cache);
|
|
```
|