]> git.mxchange.org Git - flightgear.git/blobdiff - Time/event.hxx
Tweaks for building with native SGI compilers.
[flightgear.git] / Time / event.hxx
index 1d7fb61c5cd9119c73caa2291a926de9a2b64f01..69ad7217e1415f74973add3e060664c44bdc35f7 100644 (file)
 #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
@@ -68,14 +56,14 @@ public:
        FG_EVENT_QUEUED = 2
     };
 
+    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();
 
@@ -84,22 +72,25 @@ public:
 //     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
@@ -111,10 +102,16 @@ public:
 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:
 
@@ -169,6 +166,29 @@ extern fgEVENT_MGR global_events;
 
 
 // $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.