---
name: "RpcService"
section: "3"
platform: "linux"
package: "ivtools-dev"
version: "1.1.3-4"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/RpcService"
---

# RpcService(3)

support RPC between a service and its clients

## NAME

RpcService - support RPC between a service and its clients

## SYNOPSIS

**#include \<Dispatch/rpcservice.h\>**

## DESCRIPTION

An RpcService (actually, an instance of a derived class) creates a port and listens to it for connections from clients.  When a client opens a connection, the RpcService will create a reader to handle RPC requests from the connection.

## CONSTRUCTORS

- **RpcService(int port)**

  - **RpcService(const char\* path, int port = 0)**

  Start up an RPC service.  If a filename is given, record the RPC service's hostname and port number in it so clients can contact the service.  If \`\`port'' is zero, the next free port number will be used.

## PUBLIC OPERATIONS

- **void run()**

  - **void quitRunning()**

  Read RPC requests continuously until \`\`quitRunning()'' terminates the loop.  If you're using InterViews, you don't have to call \`\`run()'' since the InterViews event-reading code will also read RPC requests.

## PROTECTED OPERATIONS

- **virtual void createReader(int fd) = 0**

  You must define this function in a derived class in order to start servicing RPC requests from a new client.  Typically all you have to do is to construct a reader using the passed file descriptor and make the reader responsible for deleting itself when it notices that the connection has been closed by the client.

## SEE ALSO

Dispatcher(3I), RpcReader(3I), RpcRegistry(3I)
