summaryrefslogtreecommitdiffstats
path: root/c/src/librtems++/src/rtemsEvent.cc
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/librtems++/src/rtemsEvent.cc')
-rw-r--r--c/src/librtems++/src/rtemsEvent.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/c/src/librtems++/src/rtemsEvent.cc b/c/src/librtems++/src/rtemsEvent.cc
new file mode 100644
index 0000000000..a917f32836
--- /dev/null
+++ b/c/src/librtems++/src/rtemsEvent.cc
@@ -0,0 +1,75 @@
+/*
+ ------------------------------------------------------------------------
+ $Id$
+ ------------------------------------------------------------------------
+
+ COPYRIGHT (c) 1997
+ Objective Design Systems Ltd Pty (ODS)
+ All rights reserved (R) Objective Design Systems Ltd Pty
+
+ The license and distribution terms for this file may be found in the
+ file LICENSE in this distribution or at
+ http://www.OARcorp.com/rtems/license.html.
+
+ ------------------------------------------------------------------------
+
+ See header file.
+
+ ------------------------------------------------------------------------
+*/
+
+#include <rtems++/rtemsEvent.h>
+
+/* ----
+ rtemsEvent
+*/
+
+rtemsEvent::rtemsEvent(const char *name_str, rtems_unsigned32 node)
+ : name(rtems_build_name('S', 'E', 'L', 'F')),
+ id(RTEMS_SELF)
+{
+ connect(name_str, node);
+}
+
+rtemsEvent::rtemsEvent(const rtemsEvent& event)
+{
+ name = event.name;
+ id = event.id;
+}
+
+rtemsEvent::rtemsEvent()
+ : name(rtems_build_name('S', 'E', 'L', 'F')),
+ id(RTEMS_SELF)
+{
+}
+
+rtemsEvent::~rtemsEvent()
+{
+}
+
+const rtemsEvent& rtemsEvent::operator=(const rtemsEvent& event)
+{
+ name = event.name;
+ id = event.id;
+
+ return *this;
+}
+
+const rtems_status_code rtemsEvent::connect(const char *name_str,
+ const rtems_unsigned32 node)
+{
+ name = rtems_build_name(name_str[0],
+ name_str[1],
+ name_str[2],
+ name_str[3]);
+
+ set_status_code(rtems_task_ident(name, node, &id));
+
+ if (unsuccessful())
+ {
+ name = rtems_build_name('S', 'E', 'L', 'F');
+ id = RTEMS_SELF;
+ }
+
+ return last_status_code();
+}