aboutsummaryrefslogtreecommitdiff
path: root/src/unixdomainsocket.h
diff options
context:
space:
mode:
authorvovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38>2007-09-27 21:24:44 +0000
committervovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38>2007-09-27 21:24:44 +0000
commit381f4fed30fe4e5408cddf7e540ce2deca1b3baf (patch)
treec830e6dc158db0f6e4fb70c45435b91122108823 /src/unixdomainsocket.h
parent0521ee9675e9434c240094a6c9e5ee15eaa9ee43 (diff)
downloadqmmp-381f4fed30fe4e5408cddf7e540ce2deca1b3baf.tar.gz
qmmp-381f4fed30fe4e5408cddf7e540ce2deca1b3baf.tar.bz2
qmmp-381f4fed30fe4e5408cddf7e540ce2deca1b3baf.zip
redesigned command line interface
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@162 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/unixdomainsocket.h')
-rw-r--r--src/unixdomainsocket.h46
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
+