#include <ace/Future.h> template<class T> class ACE_Future {
public:
ACE_Future (void);
ACE_Future (const ACE_Future<T> &r);
ACE_Future (const T &r);
~ACE_Future (void);
void operator = (const ACE_Future<T> &r);
int cancel (const T &r);
int operator == (const ACE_Future<T> &r) const;
int operator != (const ACE_Future<T> &r) const;
int set (const T &r);
int get (T &value, ACE_Time_Value *tv = 0);
operator T ();
int ready (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
ACE_Future_Rep<T> *create_rep_i (void) const;
void* operator new (size_t nbytes);
void operator delete(void *);
void operator &();
ACE_Future_Rep<T> *future_rep_;
ACE_Thread_Mutex mutex_;
};
ACE_Future (void);
ACE_Future (const ACE_Future<T> &r);
this
and r
to the same
ACE_Future_Rep
. An ACE_Future_Rep
is created if necessary.
ACE_Future (const T &r);
ACE_Future
to point to the
result r
immediately.
~ACE_Future (void);
void operator = (const ACE_Future<T> &r);
this
and r
to the same
ACE_Future_Rep
. An ACE_Future_Rep
is created if necessary.
int cancel (const T &r);
ACE_Future
and assign the value r
. It is used if a
client does not want to wait for T
to be produced.
int operator == (const ACE_Future<T> &r) const;
T
objects
point to the same ACE_Future_RepT
object. Attention: It also
returns 1 if both objects have just been instantiated and not
used yet.
int operator != (const ACE_Future<T> &r) const;
int set (const T &r);
int get (T &value, ACE_Time_Value *tv = 0);
tv
time to get the value
.
operator T ();
int ready (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
Andres.Kruse@cern.ch
and Douglas C. Schmidt
schmidt@cs.wustl.edu