aboutsummaryrefslogtreecommitdiff
path: root/src/core/device.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-27 01:15:46 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-27 01:15:46 -0800
commit82e058a2abae40760f0f9956cdb9d21f8a512624 (patch)
treea2aa52cb91afea0224657ef8bc32d61de2adc3fc /src/core/device.h
parent0867d597788099c213b1f3b0bbd2f3adbaeceee2 (diff)
downloadnng-82e058a2abae40760f0f9956cdb9d21f8a512624.tar.gz
nng-82e058a2abae40760f0f9956cdb9d21f8a512624.tar.bz2
nng-82e058a2abae40760f0f9956cdb9d21f8a512624.zip
Add device support & testing. Bus semantic fix.
This adds nn_device and nng_device. There were some internal changes required to fix shutdown / close issues. Note that we shut down the sockets when exiting from device -- this is required to make both threads see the failure and bail, since we are not using a single event loop. I also noticed that the bus protocol had a bug where it would send messages back to the originator. This was specifically tested for in the compat_device test, and we have fixed it.
Diffstat (limited to 'src/core/device.h')
-rw-r--r--src/core/device.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/device.h b/src/core/device.h
new file mode 100644
index 00000000..973a4cb7
--- /dev/null
+++ b/src/core/device.h
@@ -0,0 +1,19 @@
+//
+// Copyright 2017 Garrett D'Amore <garrett@damore.org>
+//
+// This software is supplied under the terms of the MIT License, a
+// copy of which should be located in the distribution where this
+// file was obtained (LICENSE.txt). A copy of the license may also be
+// found online at https://opensource.org/licenses/MIT.
+//
+
+#ifndef CORE_DEVICE_H
+#define CORE_DEVICE_H
+
+// Device takes messages from one side, and forwards them to the other.
+// It works in both directions. Arguably we should build versions of this
+// that are unidirectional, and we could extend this API with user-defined
+// filtering functions.
+extern int nni_device(nni_sock *, nni_sock *);
+
+#endif // CORE_DEVICE_H