85 lines
2.4 KiB
C++
85 lines
2.4 KiB
C++
//
|
|
// Copyright 2005 The Android Open Source Project
|
|
//
|
|
// Contents of the "user event" sent from the device thread.
|
|
//
|
|
#ifndef _SIM_USER_EVENT_MESSAGE_H
|
|
#define _SIM_USER_EVENT_MESSAGE_H
|
|
|
|
#include "utils.h"
|
|
#include "LogMessage.h"
|
|
|
|
/*
|
|
* This gets stuffed into a UserEvent, which is posted to the main thread
|
|
* from a worker thread.
|
|
*
|
|
* The object does NOT own anything you stuff into it. It's just a vehicle
|
|
* for carting data from one thread to another in a wxWidgets-safe manner,
|
|
* usually as pointers to data that can be shared between threads.
|
|
*/
|
|
class UserEventMessage {
|
|
public:
|
|
/*
|
|
* What type of message is this?
|
|
*/
|
|
typedef enum UEMType {
|
|
kUnknown = 0,
|
|
|
|
kRuntimeStarted,
|
|
kRuntimeStopped,
|
|
kErrorMessage, // message in mString
|
|
kLogMessage, // ptr to heap-allocated LogMessage
|
|
kExternalRuntime, // external runtime wants to party
|
|
} UEMType;
|
|
|
|
UserEventMessage(void)
|
|
: mType(kUnknown), mpLogMessage(NULL)
|
|
{}
|
|
~UserEventMessage(void) {
|
|
}
|
|
|
|
/*
|
|
* Create one of our various messages.
|
|
*/
|
|
void CreateRuntimeStarted(void) {
|
|
mType = kRuntimeStarted;
|
|
}
|
|
void CreateRuntimeStopped(void) {
|
|
mType = kRuntimeStopped;
|
|
}
|
|
void CreateErrorMessage(wxString& str) {
|
|
mType = kErrorMessage;
|
|
mString = str;
|
|
}
|
|
void CreateLogMessage(LogMessage* pLogMessage) {
|
|
mType = kLogMessage;
|
|
mpLogMessage = pLogMessage;
|
|
}
|
|
void CreateExternalRuntime(android::Pipe* reader, android::Pipe* writer) {
|
|
mType = kExternalRuntime;
|
|
mReader = reader;
|
|
mWriter = writer;
|
|
}
|
|
|
|
/*
|
|
* Accessors.
|
|
*/
|
|
UEMType GetType(void) const { return mType; }
|
|
const wxString& GetString(void) const { return mString; }
|
|
LogMessage* GetLogMessage(void) const { return mpLogMessage; }
|
|
android::Pipe* GetReader(void) const { return mReader; }
|
|
android::Pipe* GetWriter(void) const { return mWriter; }
|
|
|
|
private:
|
|
UserEventMessage& operator=(const UserEventMessage&); // not implemented
|
|
UserEventMessage(const UserEventMessage&); // not implemented
|
|
|
|
UEMType mType;
|
|
wxString mString; // for kErrorMessage
|
|
LogMessage* mpLogMessage; // for kLogMessage
|
|
android::Pipe* mReader; // for kExternalRuntime
|
|
android::Pipe* mWriter; // for kExternalRuntime
|
|
};
|
|
|
|
#endif // _SIM_USER_EVENT_MESSAGE_H
|