/******************************************************************/ /* This file is part of the homework assignments for CSCI-427/527 */ /* at The College of William & Mary and authored by Pieter Peers. */ /* No part of this file, whether altered or in original form, can */ /* be distributed or used outside the context of CSCI-427/527 */ /* without consent of either the College of William & Mary or */ /* Pieter Peers. */ /******************************************************************/ #ifndef _SCENEIO_CACHE_H_ #define _SCENEIO_CACHE_H_ #include #include #include #include template class nodeCache { public: ////////////////// // Constructors // ////////////////// nodeCache(void) {} nodeCache(const nodeCache&) = delete; /////////////// // Operators // /////////////// nodeCache& operator=(const nodeCache& ) = delete; ///////////// // Methods // ///////////// std::shared_ptr get(const std::string& name) const; bool add(const std::string& name, const std::shared_ptr& node); std::vector> unusedNodes(unsigned int maxCount=1) const; std::vector> allNodes(void) const; private: ////////////////////////// // Private Data Members // ////////////////////////// std::map> _cache; }; //////////////////// // Inline Methods // //////////////////// #include "sceneIO_cache.inline.h" #endif /* _SCENEIO_CACHE_H_ */