• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

acsncCircularQueue.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 *    ALMA - Atacama Large Millimiter Array
00003 *    (c) National Radio Astronomy Observatory, 2009
00004 *    Copyright by NRAO (in the framework of the ALMA collaboration)
00005 *    All rights reserved
00006 *
00007 *    This library is free software; you can redistribute it and/or
00008 *    modify it under the terms of the GNU Lesser General Public
00009 *    License as published by the Free Software Foundation; either
00010 *    version 2.1 of the License, or (at your option) any later version.
00011 *
00012 *    This library is distributed in the hope that it will be useful,
00013 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 *    Lesser General Public License for more details.
00016 *
00017 *    You should have received a copy of the GNU Lesser General Public
00018 *    License along with this library; if not, write to the Free Software
00019 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00020 *  
00021 *
00022 * "@(#) $Id:"
00023 */ 
00024 
00025 
00026 #ifndef _NC_CIRCULAR_QUEUE_H_
00027 #define _NC_CIRCULAR_QUEUE_H_
00028 
00029 #include <deque>
00030 #include <iostream>
00031 #include <orbsvcs/CosNotificationC.h>
00032 
00033 namespace nc{
00039    class CircularQueue{
00040       private:
00041          std::deque<CosNotification::StructuredEvent> queue;
00042          unsigned int length;
00043          const unsigned int max_size;
00044 
00045      public:
00052          CircularQueue(unsigned int size = 100);
00053 
00057          ~CircularQueue();
00058 
00068          void push(CosNotification::StructuredEvent e);
00069          
00073          void clear();
00074 
00079          void pop();
00080 
00087          CosNotification::StructuredEvent *front();
00088 
00089          unsigned int size() { return queue.size(); }
00090    };
00091 
00092         class EventDroppedException: std::exception
00093         {
00094         };
00095 }
00096 
00097 #endif

Generated on Thu Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0