Input / output

Convenience functions for reading and writing. A template class I, is used as an abstraction for I/O devices like serial ports, wire interfaces and network interfaces like ethernet. An overview of the required methods of an I/O plugin is described in the plugins section.

Printing

#include "print.tcc"

The following functions take care of serialisation of:

  • Values of basic types.
  • C strings (char[], char*, char const[], char const*).
  • C++ Strings.
  • PROGMEM strings (F() macro).

Finally, a print function that takes an arbitrary amount of parameters is provided for convenience.

Functions

template <class T>
void rpcPrint(Stream &io, T data)

Print a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcPrint(Stream &io, char *data)

Print a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcPrint(Stream &io, char const *data)

Print a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcPrint(Stream &io, String &data)

Print a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcPrint(Stream &io, __FlashStringHelper const *data)

Print a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class H, class… Tail>
void rpcPrint(Stream &io, H data, Tail... args)

Print any number of values.

Parameters
  • io -

    Stream / output object.

  • data -

    Value to be printed.

  • args -

    Remaining values.

Reading

Read functions for deserialisation.

#include "read.tcc"

Functions

template <class T>
void rpcRead(Stream &io, T *data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcRead(Stream &io, char **data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcRead(Stream &io, char const **data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcRead(Stream &io, String *data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class T>
void rpcRead(Stream &io, Vector<T> *data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class T>
void rpcRead(Stream &io, T **data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class T>
void rpcRead(Stream &io, T ***data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class… Membs>
void rpcRead(Stream &io, Tuple<Membs...> *data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class… Membs>
void rpcRead(Stream &io, Object<Membs...> *data)

Read a value from an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

Writing

Write functions for serialisation.

#include "read.tcc"

Functions

template <class T>
void rpcWrite(Stream &io, T *data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcWrite(Stream &io, char **data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcWrite(Stream &io, char const **data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

void rpcWrite(Stream &io, String *data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class T>
void rpcWrite(Stream &io, Vector<T> *data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class… Membs>
void rpcWrite(Stream &io, Tuple<Membs...> *data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.

template <class… Membs>
void rpcWrite(Stream &io, Object<Membs...> *data)

Write a value to an Input / output object.

Parameters
  • io -

    Input / output object.

  • data -

    Data.