class ClientServiceTopologyRequest extends ClientRequest {
    /** The service name. */
    private final String name;

    /**
     * Creates the service topology request.
     *
     * @param reader Reader to read the {@link #name} from.
     */
    public ClientServiceTopologyRequest(BinaryRawReader reader) {
        super(reader);

        name = reader.readString();
    }

    /** {@inheritDoc} */
    @Override public ClientResponse process(ClientConnectionContext ctx) {<FILL_FUNCTION_BODY>}
}

        Map<UUID, Integer> srvcTop;

        try {
            srvcTop = ctx.kernalContext().service().serviceTopology(name, 0);
        }
        catch (IgniteCheckedException e) {
            throw new IgniteClientException(ClientStatus.FAILED, "Failed to get topology for service '" + name + "'.", e);
        }

        return new ClientServiceMappingsResponse(requestId(), F.isEmpty(srvcTop) ? Collections.emptyList() : srvcTop.keySet());
    
<methods>public void <init>(org.apache.ignite.binary.BinaryRawReader) ,public void <init>(long) ,public boolean isAsync(org.apache.ignite.internal.processors.platform.client.ClientConnectionContext) ,public org.apache.ignite.internal.processors.platform.client.ClientResponse process(org.apache.ignite.internal.processors.platform.client.ClientConnectionContext) ,public IgniteInternalFuture<org.apache.ignite.internal.processors.platform.client.ClientResponse> processAsync(org.apache.ignite.internal.processors.platform.client.ClientConnectionContext) ,public long requestId() <variables>private final non-sealed long reqId