#ifndef KEY_H_ #define KEY_H_ #include #include"FolderStructure.h" #include"GenerateDate.h" using std::string; using std::vector; template class Key { S filename; const S keyDirectory{FolderStructure::keyDirectory}; vector keys; public: Key(); explicit Key(const S&); ~Key() = default; void keysInit(vector&); void setupFilename(const S&); void generatedFilename(); S path() const; S retrieveFilename() const; vector retrieveKeys() const; }; template Key::Key() { generatedFilename(); } template Key::Key(const S& filename) : filename(filename) { } template void Key::keysInit(vector& keyFromElseWhere) { keys.swap(keyFromElseWhere); } template void Key::setupFilename(const S& filename) { this->filename.assign(filename); } template void Key::generatedFilename() { GenerateDate gd; filename.assign(gd.retrieveDateString()); for (auto index=0; index!=8; ++index) { if (index==0) filename.append("_"); else { auto randomInteger = rand()%10; filename.append(std::to_string(randomInteger)); } } filename.append(".txt"); } template S Key::retrieveFilename() const { return filename; } template S Key::path() const { return keyDirectory + filename; } template vector Key::retrieveKeys() const { return keys; } #endif