diff options
| author | jacob1 <jfu614@gmail.com> | 2013-07-10 18:53:35 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-07-10 18:53:35 (GMT) |
| commit | 4f6904b1ed06cf959544f37b936612c5d1a6a08f (patch) | |
| tree | 49434caf67695b4b13ae8c9729cb044e2a0c7031 /src/gui/preview/PreviewModel.h | |
| parent | 6e7a5488b561aee4f3b5e3b22ff1b7851c3921ef (diff) | |
| download | powder-4f6904b1ed06cf959544f37b936612c5d1a6a08f.zip powder-4f6904b1ed06cf959544f37b936612c5d1a6a08f.tar.gz | |
redo threading in PreviewModel so that you don't have to wait for everything to load to quit, and the threads don't access any of PreviewModel's data
Diffstat (limited to 'src/gui/preview/PreviewModel.h')
| -rw-r--r-- | src/gui/preview/PreviewModel.h | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/src/gui/preview/PreviewModel.h b/src/gui/preview/PreviewModel.h index 846614c..1918552 100644 --- a/src/gui/preview/PreviewModel.h +++ b/src/gui/preview/PreviewModel.h @@ -1,5 +1,5 @@ -#ifndef PREVIEWMODEL_H_ -#define PREVIEWMODEL_H_ +#ifndef PREVIEWMODEL_H +#define PREVIEWMODEL_H #include <vector> #include <iostream> @@ -14,17 +14,36 @@ using namespace std; struct SaveData { + SaveData(unsigned char * data_, int len): + data(data_), + length(len) + { + } unsigned char * data; int length; }; +struct threadInfo { + threadInfo(int saveID_, int saveDate_): + threadFinished(true), + previewExited(false), + saveID(saveID_), + saveDate(saveDate_) + { + } + bool threadFinished; + bool previewExited; + int saveID; + int saveDate; +}; + class PreviewView; class PreviewModel { bool doOpen; bool commentBoxEnabled; vector<PreviewView*> observers; SaveInfo * save; - vector<char> saveDataBuffer; + SaveData *saveData; std::vector<SaveComment*> * saveComments; void notifySaveChanged(); void notifySaveCommentsChanged(); @@ -40,26 +59,17 @@ class PreviewModel { int commentsTotal; int commentsPageNumber; - bool updateSaveDataWorking; - volatile bool updateSaveDataFinished; + threadInfo * updateSaveDataInfo; pthread_t updateSaveDataThread; - static void * updateSaveDataTHelper(void * obj); - static void updateSaveDataTDelete(void * arg); - void * updateSaveDataT(); + static void * updateSaveDataT(void * obj); - bool updateSaveInfoWorking; - volatile bool updateSaveInfoFinished; + threadInfo * updateSaveInfoInfo; pthread_t updateSaveInfoThread; - static void * updateSaveInfoTHelper(void * obj); - static void updateSaveInfoTDelete(void * arg); - void * updateSaveInfoT(); + static void * updateSaveInfoT(void * obj); - bool updateSaveCommentsWorking; - volatile bool updateSaveCommentsFinished; + threadInfo * updateSaveCommentsInfo; pthread_t updateSaveCommentsThread; - static void * updateSaveCommentsTHelper(void * obj); - static void updateSaveCommentsTDelete(void * arg); - void * updateSaveCommentsT(); + static void * updateSaveCommentsT(void * obj); public: PreviewModel(); SaveInfo * GetSave(); @@ -82,4 +92,4 @@ public: virtual ~PreviewModel(); }; -#endif /* PREVIEWMODEL_H_ */ +#endif /* PREVIEWMODEL_H */ |
