///////////////////////////////////////////////////////////////////////// // RepositorySingleton.cpp - another application of Singleton Pattern // // Ver 2.0 // // Jim Fawcett, CSE776 - Design Patterns, Fall 2017 // ///////////////////////////////////////////////////////////////////////// #include "RepositorySingleton.h" #include "../RepositoryBase/RepositoryBase.h" #include "../SingletonBase/SingletonBase.h" #include "../Locks/Locks.h" #include "../Utilities/Utilities.h" using namespace Singleton; using namespace Locks; using namespace Utilities; Locks::NoLocking noLocking; // forces compilation of NoLocking code using Repo = RepositorySingleton; void showList(Repo* pRep, const std::string& msg = "") { if (pRep) { std::list list = pRep->getList(); std::cout << "\n " << msg; for (std::string item : list) { std::cout << " " << item; } } } int main() { Utilities::title<'='>("Testing RepositorySingleton"); Singleton::log.logging = true; Singleton::log.set(&std::cout); Repo* pRepo = Repo::Instance(); pRepo->add("aeiou").add("0123456789"); showList(pRepo, "pRepo"); pRepo->Release(); putLine(2); return 0; }