#endif
-#if defined ( __sun__ ) || defined ( __sgi )
-extern "C" void *memmove(void *, const void *, size_t);
-extern "C" void *memset(void *, int, size_t);
-#endif
-
+#include <Include/compiler.h>
+#include <Include/fg_callback.hxx>
#include <deque> // STL double ended queue
#include <list> // STL list
-#include <string>
-
-#include "Include/fg_stl_config.h"
-
-#ifdef _FG_NEED_AUTO_PTR
-# include "Include/auto_ptr.hxx"
-#else
-# include <memory>
-#endif
-
-#include "Include/fg_callback.hxx"
-
-#ifdef NEEDNAMESPACESTD
-using namespace std;
-#endif
+#include STL_STRING
#include "fg_time.hxx"
+#include "timestamp.hxx"
+
+FG_USING_STD(deque);
+FG_USING_STD(list);
+FG_USING_STD(string);
class fgEVENT
FG_EVENT_QUEUED = 2
};
- fgEVENT(); // Required by deque<>.
+ friend class fgEVENT_MGR;
+
+ fgEVENT() {} // Required by deque<>.
fgEVENT( const string& desc,
const fgCallback& cb,
- EventState _status,
- int _interval );
-
- fgEVENT( const fgEVENT& evt );
+ EventState evt_status,
+ int evt_interval );
~fgEVENT();
void run();
- void PrintStats() const;
+// void PrintStats() const;
+ int PrintStats() const;
-public:
+private:
+ // not defined
+ fgEVENT( const fgEVENT& evt );
+ fgEVENT& operator= ( const fgEVENT& evt );
+
+private:
string description;
// The callback object.
- // We wrap it in an auto_ptr<> because deque<> calls our copy ctor
- // and dtor when inserting and removing.
- auto_ptr<fgCallback> event_cb;
+ fgCallback* event_cb;
EventState status; // status flag
long interval; // interval in ms between each iteration of this event
- fg_timestamp last_run;
- fg_timestamp current;
- fg_timestamp next_run;
+ FGTimeStamp last_run;
+ FGTimeStamp current;
+ FGTimeStamp next_run;
long cum_time; // cumulative processor time of this event
long min_time; // time of quickest execution
class fgEVENT_MGR {
// Event table
- deque < fgEVENT > event_table;
+ typedef deque < fgEVENT* > EventContainer;
+ typedef EventContainer::iterator EventIterator;
+ typedef EventContainer::const_iterator ConstEventIterator;
+
+ EventContainer event_table;
// Run Queue
- list < fgEVENT * > run_queue;
+ typedef list < fgEVENT * > RunContainer;
+
+ RunContainer run_queue;
public:
// $Log$
+// Revision 1.18 1999/03/02 01:03:33 curt
+// Tweaks for building with native SGI compilers.
+//
+// Revision 1.17 1999/02/26 22:10:08 curt
+// Added initial support for native SGI compilers.
+//
+// Revision 1.16 1999/01/09 13:37:43 curt
+// Convert fgTIMESTAMP to FGTimeStamp which holds usec instead of ms.
+//
+// Revision 1.15 1999/01/07 20:25:33 curt
+// Portability changes and updates from Bernie Bright.
+//
+// Revision 1.14 1998/12/05 14:21:28 curt
+// Moved struct fg_timestamp to class fgTIMESTAMP and moved it's definition
+// to it's own file, timestamp.hxx.
+//
+// Revision 1.13 1998/12/04 01:32:47 curt
+// Converted "struct fg_timestamp" to "class fgTIMESTAMP" and added some
+// convenience inline operators.
+//
+// Revision 1.12 1998/10/16 00:56:08 curt
+// Converted to Point3D class.
+//
+// Revision 1.11 1998/09/15 02:09:30 curt
+// Include/fg_callback.hxx
+// Moved code inline to stop g++ 2.7 from complaining.
+//
+// Simulator/Time/event.[ch]xx
+// Changed return type of fgEVENT::printStat(). void caused g++ 2.7 to
+// complain bitterly.
+//
+// Minor bugfix and changes.
+//
+// Simulator/Main/GLUTmain.cxx
+// Added missing type to idle_state definition - eliminates a warning.
+//
+// Simulator/Main/fg_init.cxx
+// Changes to airport lookup.
+//
+// Simulator/Main/options.cxx
+// Uses fg_gzifstream when loading config file.
+//
// Revision 1.10 1998/09/08 21:41:06 curt
// Added constructor for fgEVENT.
//