summaryrefslogtreecommitdiff
path: root/src/daemon/dlt_daemon_connection.h
diff options
context:
space:
mode:
authorFrederic Berat <fberat@de.adit-jv.com>2015-07-14 16:36:14 +0200
committerLutz Helwing <lutz_helwing@mentor.com>2015-11-11 15:24:22 +0100
commitd29b6be9496db80e37a452bd42dc7813f369c33e (patch)
tree163ae1bf2e9488e2cff585cfa8cbb953630bfaf0 /src/daemon/dlt_daemon_connection.h
parent9e101ff434230a95fb8f4fd33dc48f4970496d1c (diff)
downloadDLT-daemon-d29b6be9496db80e37a452bd42dc7813f369c33e.tar.gz
dlt-daemon: Implement epoll based event handling
The event handling has been reworked in order to use epoll and restructure the code. There are 2 new structures. The DltConnection which contains all basic connection information, like the type, the file descriptor, and the receiver structure corresponding. The DltEventHandler that manages the DltConnections and the associated events. The concept is basically the following. The daemon will create different connections, serial connections, socket connections, fifos etc ... Each of them will then register itself to the event handler, and give it the ownership of this connection. From this point in time, the daemon can act on the connections. Once an event is triggered, the event handler will call the connection specific callback, creates new connections when clients arrives, and potentially destroy the connection in case of hangup. On exit, the daemon cleanup the event handler, which leads to the destruction of the connections. The work there is a first step for a global restructuring. Several modification will follow, in order to rationalize the different daemon structures, and avoid variable and code duplication. Signed-off-by: Frederic Berat <fberat@de.adit-jv.com>
Diffstat (limited to 'src/daemon/dlt_daemon_connection.h')
-rw-r--r--src/daemon/dlt_daemon_connection.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/daemon/dlt_daemon_connection.h b/src/daemon/dlt_daemon_connection.h
new file mode 100644
index 0000000..aa21a11
--- /dev/null
+++ b/src/daemon/dlt_daemon_connection.h
@@ -0,0 +1,51 @@
+/*
+ * @licence app begin@
+ * SPDX license identifier: MPL-2.0
+ *
+ * Copyright (C) 2015 Advanced Driver Information Technology.
+ * This code is developed by Advanced Driver Information Technology.
+ * Copyright of Advanced Driver Information Technology, Bosch and DENSO.
+ *
+ * This file is part of GENIVI Project DLT - Diagnostic Log and Trace.
+ *
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License (MPL), v. 2.0.
+ * If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * For further information see http://www.genivi.org/.
+ * @licence end@
+ */
+
+/*!
+ * \author
+ * Frederic Berat <fberat@de.adit-jv.com>
+ *
+ * \copyright Copyright © 2015 Advanced Driver Information Technology. \n
+ * License MPL-2.0: Mozilla Public License version 2.0 http://mozilla.org/MPL/2.0/.
+ *
+ * \file dlt_daemon_connection.h
+ */
+
+#ifndef DLT_DAEMON_CONNECTION_H
+#define DLT_DAEMON_CONNECTION_H
+
+#include "dlt_daemon_connection_types.h"
+#include "dlt_daemon_event_handler_types.h"
+#include "dlt-daemon.h"
+
+int dlt_connection_send_multiple(DltConnection *, void *, int, void *, int, int);
+
+DltConnection *dlt_connection_get_next(DltConnection *, int);
+int dlt_connection_create_remaining(DltDaemonLocal *);
+
+int dlt_connection_create(DltDaemonLocal *,
+ DltEventHandler *,
+ int,
+ int,
+ DltConnectionType);
+void dlt_connection_destroy(DltConnection *);
+
+void *dlt_connection_get_callback(DltConnection *);
+
+#endif /* DLT_DAEMON_CONNECTION_H */