Gl Graph
Gl Graph Source of drawabledatareader.h
#ifndef DRAWABLEDATAREADER_H #define DRAWABLEDATAREADER_H #include <iostream> #include <fstream> #include <unordered_map> #include "pthread.h" #include <drawabledata.h> class DrawableDataReader : public DrawableData { private: pthread_mutex_t mutex; pthread_t thread; bool readTaskDone; bool readTaskStart; bool stopRequested; protected: //input std::string * filename; std::string * format; int maxline; std::unordered_map<std::string, std::string> * args; public: DrawableDataReader() { readTaskDone =false; readTaskStart= false; stopRequested=false; args=NULL; }; DrawableDataReader(std::string * filename, std::string * format, int maxline,std::unordered_map<std::string, std::string> * args); ~DrawableDataReader(); void startReadingThread(); void stop(); bool isReadTaskDone() { return readTaskDone; }; void readFile(); std::string * getFilename() const { return filename; } std::string * getFormat() const { return format; } int getMaxLine() const { return maxline; } void lock() const { pthread_mutex_lock((pthread_mutex_t*)&mutex); } void unlock() const { pthread_mutex_unlock((pthread_mutex_t*)&mutex); } void waitUntilLoad() { pthread_join(this->thread, NULL); } virtual void onFileOpen() { } virtual bool onLineRead(std::string line) = 0; virtual void onFileClose() { } }; #endif