Files
Work/thread/THMSG.HPP
2024-08-07 09:16:27 -04:00

139 lines
2.9 KiB
C++

#ifndef _THREAD_THREADMESSAGE_HPP_
#define _THREAD_THREADMESSAGE_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_SYSTEMTIME_HPP_
#include <common/systime.hpp>
#endif
class ThreadMessage
{
public:
enum TMMsg{TM_VOID,TM_CREATE,TM_DESTROY,TM_USER};
enum TMPriority{PriorityLow,PriorityNormal,PriorityHigh};
ThreadMessage(void);
ThreadMessage(TMMsg message,DWORD userDataOne=0L,DWORD userDataTwo=0L,TMPriority priority=PriorityNormal);
ThreadMessage(const ThreadMessage &someThreadMessage);
virtual ~ThreadMessage();
ThreadMessage &operator=(const ThreadMessage &someThreadMessage);
WORD operator==(const ThreadMessage &someThreadMessage)const;
TMMsg message(void)const;
void message(TMMsg message);
DWORD userDataOne(void)const;
void userDataOne(DWORD userDataOne);
DWORD userDataTwo(void)const;
void userDataTwo(DWORD userDataTwo);
TMPriority priority(void)const;
void priority(TMPriority priority);
SystemTime &messageTime(void);
void messageTime(const SystemTime &messageTime);
private:
TMMsg mMessage;
TMPriority mPriority;
SystemTime mMessageTime;
DWORD mUserDataOne;
DWORD mUserDataTwo;
};
inline
ThreadMessage::ThreadMessage(void)
: mMessage(TM_VOID), mUserDataOne(0L), mUserDataTwo(0L), mPriority(PriorityNormal)
{
}
inline
ThreadMessage::ThreadMessage(TMMsg message,DWORD userDataOne,DWORD userDataTwo,TMPriority priority)
: mMessage(message), mUserDataOne(userDataOne), mUserDataTwo(userDataTwo),
mPriority(priority)
{
}
inline
ThreadMessage::ThreadMessage(const ThreadMessage &someThreadMessage)
{
*this=someThreadMessage;
}
inline
ThreadMessage::~ThreadMessage()
{
}
inline
ThreadMessage &ThreadMessage::operator=(const ThreadMessage &someThreadMessage)
{
message(someThreadMessage.message());
userDataOne(someThreadMessage.userDataOne());
userDataTwo(someThreadMessage.userDataTwo());
priority(someThreadMessage.priority());
return *this;
}
inline
WORD ThreadMessage::operator==(const ThreadMessage &someThreadMessage)const
{
return message()==someThreadMessage.message();
}
inline
ThreadMessage::TMMsg ThreadMessage::message(void)const
{
return mMessage;
}
inline
void ThreadMessage::message(TMMsg message)
{
mMessage=message;
}
inline
DWORD ThreadMessage::userDataOne(void)const
{
return mUserDataOne;
}
inline
void ThreadMessage::userDataOne(DWORD userDataOne)
{
mUserDataOne=userDataOne;
}
inline
DWORD ThreadMessage::userDataTwo(void)const
{
return mUserDataTwo;
}
inline
void ThreadMessage::userDataTwo(DWORD userDataTwo)
{
mUserDataTwo=userDataTwo;
}
inline
ThreadMessage::TMPriority ThreadMessage::priority(void)const
{
return mPriority;
}
inline
void ThreadMessage::priority(TMPriority priority)
{
mPriority=priority;
}
inline
SystemTime &ThreadMessage::messageTime(void)
{
return mMessageTime;
}
inline
void ThreadMessage::messageTime(const SystemTime &messageTime)
{
mMessageTime=messageTime;
}
#endif