libmuscle.mcp.client module

class libmuscle.mcp.client.Client(instance_id: Reference, location: str)[source]

Bases: object

A client that connects to an MCP server.

This is a base class for MCP Clients. An MCP Client connects to an MCP Server over some lower-level communication protocol, and requests messages from it.

Create an MCPClient for a given location.

The client will connect to this location and be able to request messages from any compute element and port represented by it.

Parameters
  • instance_id – Id of our instance.

  • location – A location string for the peer.

static can_connect_to(location: str) bool[source]

Whether this client class can connect to the given location.

Parameters

location – The location to potentially connect to.

Returns

True iff this class can connect to this location.

close() None[source]

Closes this client.

This closes any connections this client has and/or performs other shutdown activities.

receive(receiver: Reference) bytes[source]

Receive a message from a port this client connects to.

Parameters

receiver – The receiving (local) port.

Returns

The received message.

static shutdown(instance_id: Reference) None[source]

Shut down and free any resources shared by all clients.

This is an optional hook for communication subsystems that need it. If implemented, it must work correctly even if no clients have ever been instantiated.

This will be called after all clients of this class have been closed.