Files
Work/commctrl/commstat.hpp
2024-08-07 09:12:07 -04:00

213 lines
4.5 KiB
C++

#ifndef _M68HC11_COMMSTATUS_HPP_
#define _M68HC11_COMMSTATUS_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class CommStatus : private _COMSTAT
{
public:
CommStatus(void);
CommStatus(const CommStatus &someCommStatus);
virtual ~CommStatus();
CommStatus &operator=(const CommStatus &someCommStatus);
BOOL operator==(const CommStatus &someCommStatus)const;
BOOL waitingForCts(void)const;
BOOL waitingForDsr(void)const;
BOOL waitingForRlsd(void)const;
BOOL waitingRcvdXOff(void)const;
BOOL waitingSentXOff(void)const;
BOOL waitingRcvdEof(void)const;
BOOL waitingForTx(void)const;
DWORD bytesInReceiveQueue(void)const;
DWORD bytesInSendQueue(void)const;
_COMSTAT &getCOMSTAT(void);
private:
void waitingForCts(BOOL waitingForCts);
void waitingForDsr(BOOL waitingForDsr);
void waitingForRlsd(BOOL waitingForRlsd);
void waitingRcvdXOff(BOOL waitingRcvdXOff);
void waitingSentXOff(BOOL waitingSentXOff);
void waitingRcvdEof(BOOL waitingRcvdEof);
void waitingForTx(BOOL waitingForTx);
void bytesInReceiveQueue(DWORD bytesInReceiveQueue);
void bytesInSendQueue(DWORD bytesInSendQueue);
void setZero(void);
};
inline
CommStatus::CommStatus(void)
{
setZero();
}
inline
CommStatus::CommStatus(const CommStatus &someCommStatus)
{
*this=someCommStatus;
}
inline
CommStatus::~CommStatus()
{
}
inline
CommStatus &CommStatus::operator=(const CommStatus &someCommStatus)
{
waitingForCts(someCommStatus.waitingForCts());
waitingForDsr(someCommStatus.waitingForDsr());
waitingForRlsd(someCommStatus.waitingForRlsd());
waitingRcvdXOff(someCommStatus.waitingRcvdXOff());
waitingSentXOff(someCommStatus.waitingSentXOff());
waitingRcvdEof(someCommStatus.waitingRcvdEof());
waitingForTx(someCommStatus.waitingForTx());
bytesInReceiveQueue(someCommStatus.bytesInReceiveQueue());
bytesInSendQueue(someCommStatus.bytesInSendQueue());
return *this;
}
inline
BOOL CommStatus::operator==(const CommStatus &someCommStatus)const
{
return (waitingForCts()==someCommStatus.waitingForCts()&&
waitingForDsr()==someCommStatus.waitingForDsr()&&
waitingForRlsd()==someCommStatus.waitingForRlsd()&&
waitingRcvdXOff()==someCommStatus.waitingRcvdXOff()&&
waitingSentXOff()==someCommStatus.waitingSentXOff()&&
waitingRcvdEof()==someCommStatus.waitingRcvdEof()&&
waitingForTx()==someCommStatus.waitingForTx()&&
bytesInReceiveQueue()==someCommStatus.bytesInReceiveQueue()&&
bytesInSendQueue()==someCommStatus.bytesInSendQueue());
}
inline
BOOL CommStatus::waitingForCts(void)const
{
return _COMSTAT::fCtsHold;
}
inline
void CommStatus::waitingForCts(BOOL waitingForCts)
{
_COMSTAT::fCtsHold=waitingForCts;
}
inline
BOOL CommStatus::waitingForDsr(void)const
{
return _COMSTAT::fDsrHold;
}
inline
void CommStatus::waitingForDsr(BOOL waitingForDsr)
{
_COMSTAT::fDsrHold=waitingForDsr;
}
inline
BOOL CommStatus::waitingForRlsd(void)const
{
return _COMSTAT::fRlsdHold;
}
inline
void CommStatus::waitingForRlsd(BOOL waitingForRlsd)
{
_COMSTAT::fRlsdHold=waitingForRlsd;
}
inline
BOOL CommStatus::waitingRcvdXOff(void)const
{
return _COMSTAT::fXoffHold;
}
inline
void CommStatus::waitingRcvdXOff(BOOL waitingRcvdXOff)
{
_COMSTAT::fXoffHold=waitingRcvdXOff;
}
inline
BOOL CommStatus::waitingSentXOff(void)const
{
return _COMSTAT::fXoffSent;
}
inline
void CommStatus::waitingSentXOff(BOOL waitingSentXOff)
{
_COMSTAT::fXoffSent=waitingSentXOff;
}
inline
BOOL CommStatus::waitingRcvdEof(void)const
{
return _COMSTAT::fEof;
}
inline
void CommStatus::waitingRcvdEof(BOOL waitingRcvdEof)
{
_COMSTAT::fEof=waitingRcvdEof;
}
inline
BOOL CommStatus::waitingForTx(void)const
{
return _COMSTAT::fTxim;
}
inline
void CommStatus::waitingForTx(BOOL waitingForTx)
{
_COMSTAT::fTxim=waitingForTx;
}
inline
DWORD CommStatus::bytesInReceiveQueue(void)const
{
return _COMSTAT::cbInQue;
}
inline
void CommStatus::bytesInReceiveQueue(DWORD bytesInReceiveQueue)
{
_COMSTAT::cbInQue=bytesInReceiveQueue;
}
inline
DWORD CommStatus::bytesInSendQueue(void)const
{
return _COMSTAT::cbOutQue;
}
inline
void CommStatus::bytesInSendQueue(DWORD bytesInSendQueue)
{
_COMSTAT::cbOutQue=bytesInSendQueue;
}
inline
_COMSTAT &CommStatus::getCOMSTAT(void)
{
return *this;
}
inline
void CommStatus::setZero(void)
{
_COMSTAT::fCtsHold=0;
_COMSTAT::fDsrHold=0;
_COMSTAT::fRlsdHold=0;
_COMSTAT::fXoffHold=0;
_COMSTAT::fXoffSent=0;
_COMSTAT::fEof=0;
_COMSTAT::fTxim=0;
_COMSTAT::fReserved=0;
_COMSTAT::cbInQue=0;
_COMSTAT::cbOutQue=0;
}
#endif