diff options
Diffstat (limited to 'src/unixdomainsocket.h')
| -rw-r--r-- | src/unixdomainsocket.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/unixdomainsocket.h b/src/unixdomainsocket.h new file mode 100644 index 000000000..7538e685a --- /dev/null +++ b/src/unixdomainsocket.h @@ -0,0 +1,46 @@ +#ifndef UNIXDOMAINSOCKET_H +#define UNIXDOMAINSOCKET_H + +#include <QUdpSocket> +#include <sys/socket.h> +#include <netinet/in.h> +#include <sys/types.h> +#include <linux/un.h> + + +/*! + * UnixDomainSocket class is a wrapper around the unix domain sockets implementation. + * Used for QMMP interprocess communications. + * @author Vladimir Kuznetsov <vovanec@gmail.com> + */ +class UnixDomainSocket : public QUdpSocket +{ +Q_OBJECT +public: + UnixDomainSocket(QObject * parent = 0 ); + + /*! + * Try to bind socket to \b path. Returns \b true on success, otherwise \b false + */ + bool bind(const QString& file); + + /*! + * Checks if socket at \b path path is alive( i.e. connectable). + */ + bool alive(const QString& path); + ~UnixDomainSocket(); + +public slots: + /*! + * Sends the datagram \b command to the socket at \b path path. + */ + void writeDatagram(const char* command,const QString& path); +private: + unsigned int _s; + struct sockaddr_un _local; + bool _binded; +}; + + +#endif + |
