cec: renamed CCommunication -> CAdapterCommunication
authorLars Op den Kamp <lars@opdenkamp.eu>
Mon, 3 Oct 2011 19:54:29 +0000 (21:54 +0200)
committerLars Op den Kamp <lars@opdenkamp.eu>
Mon, 3 Oct 2011 19:54:29 +0000 (21:54 +0200)
src/lib/AdapterCommunication.cpp [moved from src/lib/Communication.cpp with 86% similarity]
src/lib/AdapterCommunication.h [moved from src/lib/Communication.h with 91% similarity]
src/lib/CECParser.cpp
src/lib/CECParser.h
src/lib/Makefile.am

similarity index 86%
rename from src/lib/Communication.cpp
rename to src/lib/AdapterCommunication.cpp
index fd86b539aae20bb6d91166ec16d6b84328fea6a8..1ee7f883e53e3d9549bc998e289f0883faecb0b9 100644 (file)
@@ -30,7 +30,7 @@
  *     http://www.pulse-eight.net/
  */
 
-#include "Communication.h"
+#include "AdapterCommunication.h"
 #include "CECParser.h"
 #include "libPlatform/serialport.h"
 #include "util/StdString.h"
@@ -38,7 +38,7 @@
 using namespace std;
 using namespace CEC;
 
-CCommunication::CCommunication(CCECParser *parser) :
+CAdapterCommunication::CAdapterCommunication(CCECParser *parser) :
     m_parser(parser),
     m_inbuf(NULL),
     m_iInbufSize(0),
@@ -49,13 +49,13 @@ CCommunication::CCommunication(CCECParser *parser) :
   m_port = new CSerialPort;
 }
 
-CCommunication::~CCommunication(void)
+CAdapterCommunication::~CAdapterCommunication(void)
 {
   m_port->Close();
   m_port = NULL;
 }
 
-bool CCommunication::Open(const char *strPort, int iBaudRate /* = 38400 */, int iTimeoutMs /* = 10000 */)
+bool CAdapterCommunication::Open(const char *strPort, int iBaudRate /* = 38400 */, int iTimeoutMs /* = 10000 */)
 {
   CLockObject lock(&m_commMutex);
   if (m_bStarted)
@@ -79,10 +79,10 @@ bool CCommunication::Open(const char *strPort, int iBaudRate /* = 38400 */, int
 
   m_bStop = false;
   m_bStarted = true;
-  if (pthread_create(&m_thread, NULL, (void *(*) (void *))&CCommunication::ReaderThreadHandler, (void *)this) == 0)
+
+  if (CreateThread())
   {
     m_parser->AddLog(CEC_LOG_DEBUG, "reader thread created");
-    pthread_detach(m_thread);
     return true;
   }
   else
@@ -93,22 +93,13 @@ bool CCommunication::Open(const char *strPort, int iBaudRate /* = 38400 */, int
   return false;
 }
 
-void *CCommunication::ReaderThreadHandler(CCommunication *comm)
-{
-  if (comm)
-    comm->ReaderProcess();
-
-  return NULL;
-}
-
-void CCommunication::Close(void)
+void CAdapterCommunication::Close(void)
 {
-  m_bStop = true;
-  pthread_join(m_thread, NULL);
+  StopThread();
   m_port->Close();
 }
 
-void *CCommunication::ReaderProcess(void)
+void *CAdapterCommunication::Process(void)
 {
   while (!m_bStop)
   {
@@ -128,7 +119,7 @@ void *CCommunication::ReaderProcess(void)
   return NULL;
 }
 
-bool CCommunication::ReadFromDevice(int iTimeout)
+bool CAdapterCommunication::ReadFromDevice(int iTimeout)
 {
   uint8_t buff[1024];
   CLockObject lock(&m_commMutex);
@@ -147,7 +138,7 @@ bool CCommunication::ReadFromDevice(int iTimeout)
   return true;
 }
 
-void CCommunication::AddData(uint8_t *data, int iLen)
+void CAdapterCommunication::AddData(uint8_t *data, int iLen)
 {
   CLockObject lock(&m_bufferMutex);
   if (iLen + m_iInbufUsed > m_iInbufSize)
@@ -162,7 +153,7 @@ void CCommunication::AddData(uint8_t *data, int iLen)
   m_condition.Signal();
 }
 
-bool CCommunication::Write(const cec_frame &data)
+bool CAdapterCommunication::Write(const cec_frame &data)
 {
   CLockObject lock(&m_commMutex);
 
@@ -178,7 +169,7 @@ bool CCommunication::Write(const cec_frame &data)
   return true;
 }
 
-bool CCommunication::Read(cec_frame &msg, int iTimeout)
+bool CAdapterCommunication::Read(cec_frame &msg, int iTimeout)
 {
   CLockObject lock(&m_bufferMutex);
 
@@ -269,7 +260,7 @@ bool CCommunication::Read(cec_frame &msg, int iTimeout)
   return false;
 }
 
-std::string CCommunication::GetError(void) const
+std::string CAdapterCommunication::GetError(void) const
 {
   return m_port->GetError();
 }
similarity index 91%
rename from src/lib/Communication.h
rename to src/lib/AdapterCommunication.h
index 82afbb6a8ec28322f29304936a6a237e01920797..270d96b9f5303746ecc0b7d42d9813f4dc478a69 100644 (file)
@@ -36,6 +36,7 @@
 #include "../../include/CECExports.h"
 #include "../../include/CECTypes.h"
 #include "util/buffer.h"
+#include "util/threads.h"
 
 class CSerialPort;
 
@@ -43,11 +44,11 @@ namespace CEC
 {
   class CCECParser;
 
-  class CCommunication
+  class CAdapterCommunication : CThread
   {
   public:
-    CCommunication(CCECParser *parser);
-    virtual ~CCommunication();
+    CAdapterCommunication(CCECParser *parser);
+    virtual ~CAdapterCommunication();
 
     bool Open(const char *strPort, int iBaudRate = 38400, int iTimeoutMs = 10000);
     bool Read(cec_frame &msg, int iTimeout = 1000);
@@ -56,8 +57,7 @@ namespace CEC
     bool IsOpen(void) const { return !m_bStop && m_bStarted; }
     std::string GetError(void) const;
 
-    static void *ReaderThreadHandler(CCommunication *reader);
-    void *ReaderProcess(void);
+    void *Process(void);
   private:
     void AddData(uint8_t *data, int iLen);
     bool ReadFromDevice(int iTimeout);
@@ -69,7 +69,6 @@ namespace CEC
     int                  m_iInbufUsed;
     bool                 m_bStarted;
     bool                 m_bStop;
-    pthread_t            m_thread;
     CMutex               m_commMutex;
     CMutex               m_bufferMutex;
     CCondition           m_condition;
index 5f242869be3c3f5213f66bdadaec5f821871de6f..a86da1a58f3411c7e23193ddb852cd971209e48e 100644 (file)
@@ -42,7 +42,7 @@
 #include "util/threads.h"
 #include "util/timeutils.h"
 #include "CECDetect.h"
-#include "Communication.h"
+#include "AdapterCommunication.h"
 
 using namespace CEC;
 using namespace std;
@@ -60,7 +60,7 @@ CCECParser::CCECParser(const char *strDeviceName, cec_logical_address iLogicalAd
     m_iLogicalAddress(iLogicalAddress),
     m_strDeviceName(strDeviceName)
 {
-  m_communication = new CCommunication(this);
+  m_communication = new CAdapterCommunication(this);
 }
 
 CCECParser::~CCECParser(void)
index c70cc481f0a4aa79c464943d5f92f6f0de417c0b..27187c70c0798b181862a75bc6fdc8e22fd33b24 100644 (file)
@@ -42,7 +42,7 @@ class CSerialPort;
 
 namespace CEC
 {
-  class CCommunication;
+  class CAdapterCommunication;
 
   class CCECParser : public ICECDevice, public CThread
   {
@@ -114,6 +114,6 @@ namespace CEC
       CecBuffer<cec_command>     m_commandBuffer;
       std::string                m_strDeviceName;
       CMutex                     m_mutex;
-      CCommunication            *m_communication;
+      CAdapterCommunication            *m_communication;
   };
 };
index 586e1b12f7019dba4369d5bb06f2a2209931d15e..0d015ad9472a37e21dda7815f7f8f17da73eacb5 100644 (file)
@@ -13,8 +13,8 @@ libcec_la_SOURCES = CECParser.cpp \
                     CECParserC.cpp \
                     CECDetect.cpp \
                     CECDetect.h \
-                    Communication.cpp \
-                    Communication.h \
+                    AdapterCommunication.cpp \
+                    AdapterCommunication.h \
                     ../../include/CECExports.h \
                     ../../include/CECExportsCpp.h \
                     ../../include/CECExportsC.h \