/*
* Connections.java
* Copyright (C) 2011,2012 Wannes De Smet
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.xenmaster.connectivity;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.xenmaster.api.Session;
/**
*
* @created Oct 2, 2011
* @author double-u
*/
public class Connections {
protected final List<XMLRPC> xmlRpcs;
protected final Session session = new Session();
protected URL url;
public Connections(URL url) {
this.url = url;
this.xmlRpcs = new ArrayList<>();
this.xmlRpcs.add(new XMLRPC(url));
}
public Map executeCommand(String commandName, List params, int connection) {
return xmlRpcs.get(connection).execute(commandName, params);
}
public int requestNewConnection() {
synchronized (xmlRpcs) {
this.xmlRpcs.add(new XMLRPC(url));
return this.xmlRpcs.size() - 1;
}
}
public Session getSession() {
return session;
}
public URL getUrl() {
return url;
}
public void authenticate(String userName, String password) {
synchronized (session) {
session.loginWithPassword(userName, password);
if (session.getReference() != null) {
session.fill();
}
}
}
}