summaryrefslogtreecommitdiff
path: root/dds_io_pub/Writer.h
diff options
context:
space:
mode:
Diffstat (limited to 'dds_io_pub/Writer.h')
-rw-r--r--dds_io_pub/Writer.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/dds_io_pub/Writer.h b/dds_io_pub/Writer.h
new file mode 100644
index 0000000..030211d
--- /dev/null
+++ b/dds_io_pub/Writer.h
@@ -0,0 +1,36 @@
+// -*- C++ -*-
+//
+// $Id: Writer.h 29 2005-07-18 18:21:16Z calabrese_p $
+#ifndef WRITER_H
+#define WRITER_H
+
+#include <dds/DdsDcpsPublicationC.h>
+#include <ace/Task.h>
+
+
+class Writer : public ACE_Task_Base
+{
+public:
+
+ Writer (::DDS::DataWriter_ptr writer);
+
+ void start ();
+
+ void end ();
+
+ /** Lanch a thread to write. **/
+ virtual int svc ();
+
+ bool is_finished () const;
+
+ int get_timeout_writes () const;
+
+
+private:
+
+ ::DDS::DataWriter_var writer_;
+ ACE_Atomic_Op<ACE_SYNCH_MUTEX, int> finished_instances_;
+ ACE_Atomic_Op<ACE_SYNCH_MUTEX, int> timeout_writes_;
+};
+
+#endif /* WRITER_H */