summaryrefslogtreecommitdiffstats
blob: 61c2bb2c2abcf5285032fd93e0adcae6d80ff9fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * Copyright (c) 2010-2013 Isode Limited.
 * All rights reserved.
 * See the COPYING file for more information.
 */
/*
 * Copyright (c) 2015 Tarun Gupta.
 * Licensed under the simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */

package com.isode.stroke.component;

import com.isode.stroke.component.CoreComponent;
import com.isode.stroke.queries.responders.SoftwareVersionResponder;
import com.isode.stroke.jid.JID;
import com.isode.stroke.network.NetworkFactories;

/**
 * Provides the core functionality for writing XMPP component software.
 *
 * Besides connecting to an XMPP server, this class also provides interfaces for
 * performing most component tasks on the XMPP network.
 */
public class Component extends CoreComponent {

	private SoftwareVersionResponder softwareVersionResponder;

	public Component(JID jid, String secret, NetworkFactories networkFactories) {
		super(jid, secret, networkFactories);
		softwareVersionResponder = new SoftwareVersionResponder(getIQRouter());
		softwareVersionResponder.start();
	}

	public void delete() {
		softwareVersionResponder.stop();
	}

	/**
	 * Sets the software version of the client.
	 *
	 * This will be used to respond to version queries from other entities.
	 */
	public void setSoftwareVersion(final String name, final String version) {
		softwareVersionResponder.setVersion(name, version);
	}	
}