/*
* This file is part of the libCEC(R) library.
*
- * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved.
+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
* libCEC(R) is an original work, containing original code.
*
* libCEC(R) is a trademark of Pulse-Eight Limited.
#include "lib/platform/threads/threads.h"
#include "lib/platform/util/buffer.h"
+#include "lib/platform/util/timeutils.h"
#include <map>
+#include "USBCECAdapterMessage.h"
namespace CEC
{
bool ProvidesExtendedResponse(void);
+ /*!
+ * @return True when a fire and forget packet timed out or succeeded, false otherwise
+ */
+ bool TimedOutOrSucceeded(void) const;
+
CCECAdapterMessageQueue * m_queue;
CCECAdapterMessage * m_message; /**< the message that was sent */
uint8_t m_iPacketsLeft; /**< the amount of acks that we're waiting on */
bool m_bWaiting; /**< true while a thread is waiting or when it hasn't started waiting yet */
PLATFORM::CCondition<bool> m_condition; /**< the condition to wait on */
PLATFORM::CMutex m_mutex; /**< mutex for changes to this class */
+ PLATFORM::CTimeout m_queueTimeout; /**< ack timeout for fire and forget commands */
};
class CCECAdapterMessageQueue : public PLATFORM::CThread
virtual void *Process(void);
+ void CheckTimedOutMessages(void);
+
private:
CUSBCECAdapterCommunication * m_com; /**< the communication handler */
PLATFORM::CMutex m_mutex; /**< mutex for changes to this class */