aboutsummaryrefslogtreecommitdiff
path: root/dep/acelite/ace/Stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'dep/acelite/ace/Stream.h')
-rw-r--r--dep/acelite/ace/Stream.h252
1 files changed, 0 insertions, 252 deletions
diff --git a/dep/acelite/ace/Stream.h b/dep/acelite/ace/Stream.h
deleted file mode 100644
index a9dc401f046..00000000000
--- a/dep/acelite/ace/Stream.h
+++ /dev/null
@@ -1,252 +0,0 @@
-// -*- C++ -*-
-
-//==========================================================================
-/**
- * @file Stream.h
- *
- * $Id: Stream.h 96070 2012-08-17 09:07:16Z mcorino $
- *
- * @author Douglas C. Schmidt <schmidt@uci.edu>
- */
-//==========================================================================
-
-#ifndef ACE_STREAM_H
-#define ACE_STREAM_H
-
-#include /**/ "ace/pre.h"
-
-#include /**/ "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/IO_Cntl_Msg.h"
-#include "ace/Message_Block.h"
-#include "ace/Module.h"
-#if defined (ACE_HAS_THREADS)
-# include "ace/Condition_Attributes.h"
-#endif
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-// Forward decls.
-template<ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Stream_Iterator;
-class ACE_Time_Value;
-
-/**
- * @class ACE_Stream
- *
- * @brief This class is the primary abstraction for the ASX framework.
- * It is moduled after System V Stream.
- *
- * A Stream consists of a stack of @c ACE_Modules, each of which
- * contains two @c ACE_Tasks. Even though the methods in this
- * class are virtual, this class isn't really intended for
- * subclassing unless you know what you are doing. In
- * particular, the ACE_Stream destructor calls <close>, which
- * won't be overridden properly unless you call it in a subclass
- * destructor.
- */
-template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
-class ACE_Stream
-{
-public:
- friend class ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>;
-
- enum
- {
- /// Indicates that @c close() deletes the Tasks. Don't change this
- /// value without updating the same enum in class ACE_Module...
- M_DELETE = 3
- };
-
- // = Initializatation and termination methods.
- /**
- * Create a Stream consisting of @a head and @a tail as the Stream
- * head and Stream tail, respectively. If these are 0 then the
- * ACE_Stream_Head and ACE_Stream_Tail are used, respectively.
- * @a arg is the value past in to the <open> methods of the tasks.
- */
- ACE_Stream (void *arg = 0,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head = 0,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail = 0);
-
- /**
- * Create a Stream consisting of @a head and @a tail as the Stream
- * head and Stream tail, respectively. If these are 0 then the
- * ACE_Stream_Head and ACE_Stream_Tail are used, respectively.
- * @a arg is the value past in to the @c open() methods of the tasks.
- */
- virtual int open (void *arg,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head = 0,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail = 0);
-
- /// Close down the stream and release all the resources.
- virtual int close (int flags = M_DELETE);
-
- /// Close down the stream and release all the resources.
- virtual ~ACE_Stream (void);
-
- // = ACE_Stream plumbing operations
-
- /// Add a new module @a mod right below the Stream head. The
- /// @c open() hook methods of the @c ACE_Tasks in this ACE_Module
- /// are invoked to initialize the tasks.
- virtual int push (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod);
-
- /// Remove the @a mod right below the Stream head and close it down.
- // The <close()> hook methods of the <ACE_Tasks> in this ACE_Module
- /// are invoked to cleanup the tasks.
- virtual int pop (int flags = M_DELETE);
-
- /// Return the top module on the stream (right below the stream
- /// head).
- virtual int top (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *&mod);
-
- /// Insert a new module @a mod below the named module @a prev_name.
- virtual int insert (const ACE_TCHAR *prev_name,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod);
-
- /// Replace the named module @a replace_name with a new module @a mod.
- virtual int replace (const ACE_TCHAR *replace_name,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod,
- int flags = M_DELETE);
-
- /// Remove the named module @a mod from the stream. This bypasses the
- /// strict LIFO ordering of @c push and @c pop.
- virtual int remove (const ACE_TCHAR *mod,
- int flags = M_DELETE);
-
- /// Return current stream head.
- virtual ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head (void);
-
- /// Return current stream tail.
- virtual ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail (void);
-
- /// Find a particular ACE_Module.
- virtual ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *find (const ACE_TCHAR *mod);
-
- /// Create a pipe between two Streams.
- virtual int link (ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &);
-
- /// Remove a pipe formed between two Streams.
- virtual int unlink (void);
-
- // = Blocking data transfer operations
- /**
- * Send the message @a mb down the stream, starting at the Module
- * below the Stream head. Wait for upto @a timeout amount of
- * absolute time for the operation to complete (or block forever if
- * @a timeout == 0).
- */
- virtual int put (ACE_Message_Block *mb,
- ACE_Time_Value *timeout = 0);
-
- /**
- * Read the message @a mb that is stored in the stream head.
- * Wait for upto @a timeout amount of absolute time for the operation
- * to complete (or block forever if @a timeout == 0).
- */
- virtual int get (ACE_Message_Block *&mb,
- ACE_Time_Value *timeout = 0);
-
- /// Send control message down the stream.
- virtual int control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
- void *args);
-
- /// Synchronize with the final close of the stream.
- virtual int wait (void);
-
- /// Dump the state of an object.
- virtual void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
- /// Actually perform the unlinking of two Streams (must be called
- /// with locks held).
- int unlink_i (void);
-
- /// Actually perform the linking of two Streams (must be called with
- /// locks held).
- int link_i (ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &);
-
- /// Must a new module onto the Stream.
- int push_module (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> * = 0,
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> * = 0);
-
- /// Pointer to the head of the stream.
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *stream_head_;
-
- /// Pointer to the tail of the stream.
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *stream_tail_;
-
- /// Pointer to an adjoining linked stream.
- ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> *linked_us_;
-
- // = Synchronization objects used for thread-safe streams.
- /// Protect the stream against race conditions.
- ACE_SYNCH_MUTEX_T lock_;
-
-#if defined (ACE_HAS_THREADS)
- /// Attributes to initialize condition with.
- /* We only need this because some crappy compilers can't
- properly handle initializing the conditions with
- temporary objects. */
- ACE_Condition_Attributes_T<TIME_POLICY> cond_attr_;
-#endif
-
- /// Use to tell all threads waiting on the close that we are done.
- ACE_SYNCH_CONDITION_T final_close_;
-};
-
-/**
- * @class ACE_Stream_Iterator
- *
- * @brief Iterate through an ACE_Stream.
- */
-template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
-class ACE_Stream_Iterator
-{
-public:
- // = Initialization method.
- ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &sr);
-
- // = Iteration methods.
-
- /// Pass back the @a next_item that hasn't been seen in the set.
- /// Returns 0 when all items have been seen, else 1.
- int next (const ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *&next_item);
-
- /// Returns 1 when all items have been seen, else 0.
- int done (void) const;
-
- /// Move forward by one element in the set. Returns 0 when all the
- /// items in the set have been seen, else 1.
- int advance (void);
-
-private:
- /// Next ACE_Module that we haven't yet seen.
- ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *next_;
-};
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#if defined (__ACE_INLINE__)
-#include "ace/Stream.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Stream.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Stream.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_STREAM_H */