[Hdrflow-svn] SF.net SVN: hdrflow: [163] trunk/lib/openlibraries/src/openpluginlib/pl/ openpluginli
Status: Pre-Alpha
Brought to you by:
glslang
From: <gl...@us...> - 2007-06-25 19:09:11
|
Revision: 163 http://hdrflow.svn.sourceforge.net/hdrflow/?rev=163&view=rev Author: glslang Date: 2007-06-25 12:09:09 -0700 (Mon, 25 Jun 2007) Log Message: ----------- + ensures discovery returns a unique set of sorted plugins Modified Paths: -------------- trunk/lib/openlibraries/src/openpluginlib/pl/openpluginlib.hpp Modified: trunk/lib/openlibraries/src/openpluginlib/pl/openpluginlib.hpp =================================================================== --- trunk/lib/openlibraries/src/openpluginlib/pl/openpluginlib.hpp 2007-06-24 20:49:00 UTC (rev 162) +++ trunk/lib/openlibraries/src/openpluginlib/pl/openpluginlib.hpp 2007-06-25 19:09:09 UTC (rev 163) @@ -39,7 +39,7 @@ namespace detail { class OPENPLUGINLIB_DECLSPEC discover_query_impl - { + { public: class OPENPLUGINLIB_DECLSPEC plugin_proxy { @@ -80,6 +80,15 @@ plugin_item& item_; }; + private: + struct equals : std::binary_function<plugin_proxy, plugin_proxy, bool> + { + bool operator( )( const plugin_proxy& x, const plugin_proxy& y ) const + { + return x.name( ) == y.name( ) && x.type( ) == y.type( ); + } + }; + public: typedef std::vector<plugin_proxy> container; typedef container::const_iterator const_iterator; @@ -102,7 +111,10 @@ template<class StrictWeakOrdering> void sort( const StrictWeakOrdering& comp = StrictWeakOrdering( ) ) - { std::sort( plugins_.begin( ), plugins_.end( ), comp ); } + { + std::sort( plugins_.begin( ), plugins_.end( ), comp ); + plugins_.erase( std::unique( plugins_.begin( ), plugins_.end( ), equals( ) ), plugins_.end( ) ); + } private: container plugins_; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |