![]() |
ENSDF++ 1.1
An easy, fast and simple way to run querys towards the ENSDF database, written in C++.
|
00001 00014 using namespace std; 00015 00016 #ifndef PTHREAD_H 00017 #define PTHREAD_H //!<Inclusion guard. 00018 #include <pthread.h> 00019 #endif 00020 00021 #ifndef STDLIB_H 00022 #define STDLIB_H //!<Inclusion guard 00023 #include <stdlib.h> 00024 #endif 00025 00026 00027 #ifndef STDIO_H 00028 #define STDIO_H //!<Inclusion guard. 00029 #include <stdio.h> 00030 #endif 00031 00032 #ifndef UTILITY 00033 #define UTILITY //!<Inclusion guard. 00034 #include <utility> 00035 #endif 00036 00037 #ifndef MAP 00038 #define MAP //!<Inclusion guard. 00039 #include <map> 00040 #endif 00041 00042 #ifndef STRING 00043 #define STRING //!<Inclusion guard 00044 #include <string> 00045 #endif 00046 00047 #ifndef VECTOR 00048 #define VECTOR //!<Inclusion guard 00049 #include <vector> 00050 #endif 00051 00052 #ifndef LIST 00053 #define LIST //!<Inclusion guard 00054 #include <list> 00055 #endif 00056 00057 #ifndef EXCEPTION 00058 #define EXCEPTION //!<Inclusion guard. 00059 #include <exception> 00060 #endif 00061 00062 #ifndef ALGORITHM 00063 #define ALGORITHM//!<Inclusion guard. 00064 #include <algorithm> 00065 #endif 00066 00067 #include "DataFileException.h" 00068 #include "Isotop.h" 00069 #include "Nukleid.h" 00070 #include "VerbosePrinterEventEnabled.h" 00071 #include "VerbosePrinter.h" 00072 00073 #ifndef ENSDF_H 00074 #define ENSDF_H //!<Inclusion guard. 00075 00076 void * loadIsotope(void * ptr 00077 ); 00078 00079 00085 class ENSDF : public VerbosePrinterEventEnabled 00086 { 00087 public: 00088 ENSDF(vector<string> filenames, 00089 VerbosePrinter * toRegister = NULL, 00090 unsigned int numberOfThreads = 5 00091 ); 00092 ~ENSDF(); 00093 const Isotop * getIsotop(const Nukleid isotopeToGet 00094 ) const; 00095 const map< Nukleid, Isotop*> getAllIsotopes() const; 00096 int getNumberOfIsotops() const; 00097 protected: 00098 map< Nukleid, Isotop*> myNucleidIsotopeMap; 00099 Nukleid * getNucleidFromString(string stringToGetIsotopeFrom 00100 ); 00101 list< list<string> > splitInDataSets(list<string> allDatasets 00102 ); 00103 00104 bool isEmptyString(string toCheck 00105 ); 00106 void threadFlush(vector< list<pair<Nukleid, list< list< string > >* > > > toFlush 00107 ); 00108 }; 00109 #endif