MythTV  master
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MythSystemLegacyIOHandler Class Reference

#include <mythsystemunix.h>

Inheritance diagram for MythSystemLegacyIOHandler:
Inheritance graph
[legend]
Collaboration diagram for MythSystemLegacyIOHandler:
Collaboration graph
[legend]

Public Member Functions

 MythSystemLegacyIOHandler (bool read)
 
 ~MythSystemLegacyIOHandler () override
 
void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
void insert (int fd, QBuffer *buff)
 
void Wait (int fd)
 
void remove (int fd)
 
void wake ()
 
 MythSystemLegacyIOHandler (bool read)
 
 ~MythSystemLegacyIOHandler ()
 
void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
void insert (HANDLE h, QBuffer *buff)
 
void Wait (HANDLE h)
 
void remove (HANDLE h)
 
void wake ()
 
- Public Member Functions inherited from MThread
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
 MThread (const MThread &)=delete
 
MThreadoperator= (const MThread &)=delete
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority p=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (std::chrono::milliseconds time=std::chrono::milliseconds::max())
 Wait for the MThread to exit, with a maximum timeout. More...
 

Private Member Functions

void HandleRead (int fd, QBuffer *buff)
 
void HandleWrite (int fd, QBuffer *buff)
 
void BuildFDs ()
 
bool HandleRead (HANDLE h, QBuffer *buff)
 
bool HandleWrite (HANDLE h, QBuffer *buff)
 

Private Attributes

QMutex m_pWaitLock
 
QWaitCondition m_pWait
 
QMutex m_pLock
 
PMap_t m_pMap
 
fd_set m_fds {}
 
int m_maxfd {-1}
 
bool m_read {true}
 
std::array< char, 65536 > m_readbuf {}
 
char m_readbuf [65536]
 

Additional Inherited Members

- Static Public Member Functions inherited from MThread
static void ThreadSetup (const QString &name)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void usleep (std::chrono::microseconds time)
 
template<typename R , typename P >
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > usleep (std::chrono::duration< R, P > time)
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prologExecuted {true}
 
bool m_epilogExecuted {true}
 

Detailed Description

Definition at line 32 of file mythsystemunix.h.

Constructor & Destructor Documentation

◆ MythSystemLegacyIOHandler() [1/2]

MythSystemLegacyIOHandler::MythSystemLegacyIOHandler ( bool  read)
inlineexplicit

Definition at line 35 of file mythsystemunix.h.

◆ ~MythSystemLegacyIOHandler() [1/2]

MythSystemLegacyIOHandler::~MythSystemLegacyIOHandler ( )
inlineoverride

Definition at line 38 of file mythsystemunix.h.

◆ MythSystemLegacyIOHandler() [2/2]

MythSystemLegacyIOHandler::MythSystemLegacyIOHandler ( bool  read)
explicit

◆ ~MythSystemLegacyIOHandler() [2/2]

MythSystemLegacyIOHandler::~MythSystemLegacyIOHandler ( )
inline

Definition at line 31 of file mythsystemwindows.h.

Member Function Documentation

◆ run() [1/2]

void MythSystemLegacyIOHandler::run ( void  )
overridevirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

Definition at line 88 of file mythsystemunix.cpp.

◆ insert() [1/2]

void MythSystemLegacyIOHandler::insert ( int  fd,
QBuffer *  buff 
)

Definition at line 216 of file mythsystemunix.cpp.

Referenced by MythSystemLegacyManager::append().

◆ Wait() [1/2]

void MythSystemLegacyIOHandler::Wait ( int  fd)

Definition at line 225 of file mythsystemunix.cpp.

Referenced by MythSystemLegacyManager::append().

◆ remove() [1/2]

void MythSystemLegacyIOHandler::remove ( int  fd)

◆ wake() [1/2]

void MythSystemLegacyIOHandler::wake ( )

Definition at line 251 of file mythsystemunix.cpp.

Referenced by insert(), and MythSystemLegacyManager::run().

◆ HandleRead() [1/2]

void MythSystemLegacyIOHandler::HandleRead ( int  fd,
QBuffer *  buff 
)
private

Definition at line 156 of file mythsystemunix.cpp.

Referenced by remove(), and run().

◆ HandleWrite() [1/2]

void MythSystemLegacyIOHandler::HandleWrite ( int  fd,
QBuffer *  buff 
)
private

Definition at line 188 of file mythsystemunix.cpp.

Referenced by run().

◆ BuildFDs()

void MythSystemLegacyIOHandler::BuildFDs ( )
private

Definition at line 257 of file mythsystemunix.cpp.

Referenced by HandleRead(), HandleWrite(), insert(), remove(), and run().

◆ run() [2/2]

void MythSystemLegacyIOHandler::run ( void  )
overridevirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

◆ insert() [2/2]

void MythSystemLegacyIOHandler::insert ( HANDLE  h,
QBuffer *  buff 
)

Definition at line 194 of file mythsystemwindows.cpp.

◆ Wait() [2/2]

void MythSystemLegacyIOHandler::Wait ( HANDLE  h)

Definition at line 202 of file mythsystemwindows.cpp.

◆ remove() [2/2]

void MythSystemLegacyIOHandler::remove ( HANDLE  h)

Definition at line 213 of file mythsystemwindows.cpp.

◆ wake() [2/2]

void MythSystemLegacyIOHandler::wake ( )

◆ HandleRead() [2/2]

bool MythSystemLegacyIOHandler::HandleRead ( HANDLE  h,
QBuffer *  buff 
)
private

Definition at line 136 of file mythsystemwindows.cpp.

◆ HandleWrite() [2/2]

bool MythSystemLegacyIOHandler::HandleWrite ( HANDLE  h,
QBuffer *  buff 
)
private

Definition at line 169 of file mythsystemwindows.cpp.

Member Data Documentation

◆ m_pWaitLock

QMutex MythSystemLegacyIOHandler::m_pWaitLock
private

Definition at line 51 of file mythsystemunix.h.

Referenced by run(), and wake().

◆ m_pWait

QWaitCondition MythSystemLegacyIOHandler::m_pWait
private

Definition at line 52 of file mythsystemunix.h.

Referenced by run(), and wake().

◆ m_pLock

QMutex MythSystemLegacyIOHandler::m_pLock
private

Definition at line 53 of file mythsystemunix.h.

Referenced by insert(), remove(), run(), and Wait().

◆ m_pMap

PMap_t MythSystemLegacyIOHandler::m_pMap
private

Definition at line 54 of file mythsystemunix.h.

Referenced by BuildFDs(), HandleRead(), HandleWrite(), insert(), remove(), run(), and Wait().

◆ m_fds

fd_set MythSystemLegacyIOHandler::m_fds {}
private

Definition at line 56 of file mythsystemunix.h.

Referenced by BuildFDs(), and run().

◆ m_maxfd

int MythSystemLegacyIOHandler::m_maxfd {-1}
private

Definition at line 57 of file mythsystemunix.h.

Referenced by BuildFDs(), and run().

◆ m_read

bool MythSystemLegacyIOHandler::m_read {true}
private

Definition at line 58 of file mythsystemunix.h.

Referenced by remove(), and run().

◆ m_readbuf [1/2]

std::array<char,65536> MythSystemLegacyIOHandler::m_readbuf {}
private

Definition at line 59 of file mythsystemunix.h.

Referenced by HandleRead().

◆ m_readbuf [2/2]

char MythSystemLegacyIOHandler::m_readbuf[65536]
private

Definition at line 49 of file mythsystemwindows.h.


The documentation for this class was generated from the following files: