Call this method to read no more than buf.size() bytes into buf from socket connection
established with daemon.


Example of implementation: return read(fd, &buf[0], buf.size());




buf - buffer to which data from socket will be written




Returns bytes actually transferred or -1 in case of error.




SWIG forces to use std::vector<char> instead of traditional (void *buf, size_t len) arguments.
The reason is that SWIG automatically passes std::vector<char> to/from target language,
you do not need to write typemaps for every language that you will use.


The example of how to deal with (void *buf, size_t len) in Python can be found in
SWIG documentation, Multi-argument typemaps.