Virtuoso Communication Interface shared library.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Virtuoso Communication Library

This library acts as the C++ counterpart to ipcSkillProcess.


Building requries at least:

  • GCC version 4.8.5
  • GNU Make 3.82

Getting Started


Run the included Makefile

$ make


To use the library link against and don't forget to include libvc.h. If your compiler doesn't find the library make sure it is added to the LD_LIBRARY_PATH environment variable.

To use the functions defined in this library a class must be derived from LibVC. For example:

class VirtuosoInterface: public LibVC
    explicit VirtuosoInterface(size_t bs, int wfd, int rfd): LibVC(bs, wfd, rfd)

An Object of this class is now capable of communicating with Virtuoso if it is launched as a child process with ipcSkillProcess.

Function Reference


int writeSkillRequest(const std::string &skillCommand)

This function writes the given string skillCommand to the file descriptor wfd defined in the ctor. On success this function returns the amount of bytes written, otherwise -1 is returned. The response given by Virtuoso to the skillCommand is buffered and available for reading with readSkillResponse. If it is not read before executing another writeSkillRequest the response will be overriten.


std::string readSkillResponse()

This function returns the response to the last writeSkillRequest call.


void setWritefd(int &wfd)

With this function the file descriptor to which writeSkillRequest writes can be manually changed. This is necessary if the x_cmdDesc in the initial ipcSkillProcess call is set to something different.


int getWritefd()

Returns the current file descriptor to which SKILL commands are written.


void setReadfd(int &rfd)

This function changes the current file descriptor from which the SKILL response is read and buffered. This is necessary if the x_resDesc in the initial ipcSkillProcess call is set to something different.


int getReadfd()

Returns the current file descriptor from which the SKILL response is read.


void setBufSize(std::size_t &bs)

With this function the size of the buffer for SKILL responses can be adjusted.


std::size_t getBufSize()

Returns the current size of the buffer holding the SKILL response.


int closeConnection()

Closes the connection to the SKILL parent process.