Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

trkwsRING_BUFFER.h

Go to the documentation of this file.
00001 #ifndef trkwsRING_BUFFER_H
00002 #define trkwsRING_BUFFER_H
00003 /*******************************************************************************
00004 * E.S.O. - VLT project
00005 
00006 *
00007 * "@(#) $Id: trkwsRING_BUFFER.h,v 1.157 2003/10/17 14:00:42 vltsccm Exp $"
00008 *
00009 * who       when      what
00010 * --------  --------  ----------------------------------------------
00011 * gchiozzi  20/08/96  Added posEncoder attribute
00012 * gchiozzi  20/08/96  Renamed posFrame as trkwsPOS_FRAME
00013 * mnastvog  02/06/95  created
00014 */
00015 
00016 /************************************************************************
00017  *
00018  *----------------------------------------------------------------------
00019  */
00020 
00021 
00022 #ifndef __cplusplus
00023 #error This is a C++ include file and cannot be used from plain C
00024 #endif
00025 
00026 // class to describe the data which should reside in a ring buffer element
00027 // This should be changed into a template!
00028 
00029 class trkwsPOS_FRAME
00030 {
00031   public:
00032     trkwsPOS_FRAME();
00033     trkwsPOS_FRAME(vltDOUBLE p,vltDOUBLE pe,vltDOUBLE t);
00034 //  private:
00035     vltDOUBLE position;
00036     vltDOUBLE posEncoder;
00037     vltDOUBLE timeStamp;
00038   friend class trkwsRING_BUFFER;
00039 };
00040 
00041 inline trkwsPOS_FRAME::trkwsPOS_FRAME()
00042 {
00043     position   = 0;
00044     posEncoder = 0;
00045     timeStamp  = 0;
00046 }
00047 
00048 inline trkwsPOS_FRAME::trkwsPOS_FRAME(vltDOUBLE p,vltDOUBLE pe,vltDOUBLE t)
00049 {
00050     position   = p;
00051     posEncoder = pe;
00052     timeStamp  = t;
00053 }
00054 
00055 
00056 #define bufEle trkwsPOS_FRAME
00057 
00058 
00059 
00060 
00061 
00062 class trkwsRING_BUFFER 
00063 {
00064   public:
00065     trkwsRING_BUFFER(int size);
00066    ~trkwsRING_BUFFER();
00067 
00068    bufEle * Read();
00069    bufEle * Peek(int offset);
00070    ccsCOMPL_STAT Write(bufEle value);   
00071    void Init();
00072    
00073 
00074   protected:
00075    int writeIndex;
00076    int readIndex;
00077    int diff;
00078    int valCount;
00079    int bufferSize;
00080    bufEle * data;
00081 };
00082 #endif
00083  

Generated on Wed Dec 3 14:52:23 2003 for ATCS API by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001