Changeset 3689


Ignore:
Timestamp:
Sep 12, 2017, 5:46:44 AM (2 weeks ago)
Author:
peter
Message:

add function clear in PriorityQueue? and Queue as well as a push function taking element as rvalue.

Location:
trunk/yat/utility
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/utility/PriorityQueue.h

    r3550 r3689  
    8181
    8282                /**
     83                         \brief clear queue
     84
     85                         \since new in yat 0.15
     86                 */
     87                void clear(void)
     88                {
     89                        boost::unique_lock<boost::mutex> lock(mutex_);
     90                        return q_.clear();
     91                }
     92
     93                /**
    8394                         \return \c true if size is zero
    8495                 */
     
    118129                        condition_.notify_one();
    119130                }
     131
     132
     133#ifdef YAT_HAVE_RVALUE
     134                /**
     135                         \brief insert an element into container
     136
     137                         \note only available if configured and built with cxx11 support
     138
     139                         \since New in yat 0.15
     140                 */
     141                void push(T&& t)
     142                {
     143                        boost::unique_lock<boost::mutex> lock(mutex_);
     144                        q_.insert(std::move(t));
     145                        lock.unlock(); // unlock the mutex
     146
     147                        // Notify others that data is ready after we have unlocked
     148                        condition_.notify_one();
     149                }
     150#endif
    120151
    121152
  • trunk/yat/utility/Queue.h

    r3682 r3689  
    1818// You should have received a copy of the GNU General Public License
    1919// along with this program. If not, see <http://www.gnu.org/licenses/>.
     20
     21#include "config_public.h"
    2022
    2123#include <boost/thread.hpp>
     
    7779
    7880                /**
     81                         \brief clear queue
     82
     83                         \since new in yat 0.15
     84                 */
     85                void clear(void)
     86                {
     87                        boost::unique_lock<boost::mutex> lock(mutex_);
     88                        return q_.clear();
     89                }
     90
     91                /**
    7992                         \return \c true if container's size is zero
    8093                 */
     
    122135
    123136
     137#ifdef YAT_HAVE_RVALUE
     138                /**
     139                         \brief insert an element into container
     140
     141                         \note only available if configured and built with cxx11 support
     142
     143                         \since New in yat 0.15
     144                 */
     145                void push(T&& t)
     146                {
     147                        boost::unique_lock<boost::mutex> lock(mutex_);
     148                        q_.push_back(std::move(t));
     149                        lock.unlock(); // unlock the mutex
     150
     151                        // Notify others that data is ready after we have unlocked
     152                        condition_.notify_one();
     153                }
     154#endif
     155
     156
    124157                /**
    125158                         \return Number of elements stored in container
Note: See TracChangeset for help on using the changeset viewer.