package ibis.ipl.server; import ibis.ipl.IbisIdentifier; import ibis.ipl.support.Connection; import ibis.ipl.support.management.AttributeDescription; import ibis.smartsockets.virtual.VirtualSocketAddress; import ibis.smartsockets.virtual.VirtualSocketFactory; class ManagementServiceConnection implements ManagementServiceInterface { public static final int TIMEOUT = 10000; private VirtualSocketAddress address; private VirtualSocketFactory socketFactory; ManagementServiceConnection(VirtualSocketAddress address, VirtualSocketFactory socketFactory) { this.address = address; this.socketFactory = socketFactory; } // Java 1.5 Does not allow @Override for interface methods // @Override public Object[] getAttributes(IbisIdentifier ibis, AttributeDescription... descriptions) throws Exception { Connection connection = new Connection(address, TIMEOUT, true, socketFactory); try { connection.out().writeByte(ServerConnectionProtocol.MAGIC_BYTE); connection.out().writeByte( ServerConnectionProtocol.OPCODE_MANAGEMENT_GET_ATTRIBUTES); connection.writeObject(ibis); connection.writeObject(descriptions); connection.getAndCheckReply(); return (Object[]) connection.readObject(); } finally { connection.close(); } } }