// // 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