-/** @file
+/**
+ * @file
*
* @copyright © Copyright 2008 by Intra2net AG
* @license commercial
} // eo CallOutId::active() const
+/**
+ * @brief retruns if the call is frozen.
+ * @return @a true iff the call is frozen.
+ */
+bool CallOutId::frozen() const
+{
+ CallerPtr caller= m_caller_weak_ptr.lock();
+ if (not caller)
+ {
+ return false;
+ }
+ return caller->frozen();
+} // eo CallOutId::frozen() const
+
+
+/**
+ * @brief returns the remaining time until the call is done or thrown away (on frozen calls).
+ * @return the remaining time.
+ *
+ * The result only makes sense if the call is still active.
+ */
+MilliTime CallOutId::remaining_time()
+{
+ CallerPtr caller= m_caller_weak_ptr.lock();
+ if ( not active() or not caller )
+ {
+ return MilliTime();
+ }
+ MilliTime t;
+ get_current_monotonic_time(t);
+ MilliTime result= caller->getWhenTime();
+ result-= t;
+ MilliTime t_null;
+ return (result < t_null ? t_null : result);
+} // eo CallOutId::remaining_time()
+
namespace Detail
{
} // eo Caller::joinId()
+bool Caller::frozen() const
+{
+ return m_waiting;
+} // eo Caller::frozen() const
+
+
} // eo namespace Detail