summaryrefslogtreecommitdiff
path: root/comm/OLD/Event.cc
diff options
context:
space:
mode:
authorchatty1993-04-07 11:50:31 +0000
committerchatty1993-04-07 11:50:31 +0000
commitba066c34dde204aa192d03a23a81356374d93731 (patch)
tree39391f6235d2cf8a59a0634ac5ea430cdd21f5d4 /comm/OLD/Event.cc
parent05ab076e1c2a9ca16472f9a6b47b8d22914b3783 (diff)
downloadivy-league-ba066c34dde204aa192d03a23a81356374d93731.zip
ivy-league-ba066c34dde204aa192d03a23a81356374d93731.tar.gz
ivy-league-ba066c34dde204aa192d03a23a81356374d93731.tar.bz2
ivy-league-ba066c34dde204aa192d03a23a81356374d93731.tar.xz
Initial revision
Diffstat (limited to 'comm/OLD/Event.cc')
-rw-r--r--comm/OLD/Event.cc121
1 files changed, 121 insertions, 0 deletions
diff --git a/comm/OLD/Event.cc b/comm/OLD/Event.cc
new file mode 100644
index 0000000..5fdef7c
--- /dev/null
+++ b/comm/OLD/Event.cc
@@ -0,0 +1,121 @@
+/*
+ * The Unix Channel
+ *
+ * by Michel Beaudouin-Lafon
+ *
+ * Copyright 1993
+ * Centre d'Etudes de la Navigation Aerienne (CENA)
+ *
+ * Events, by Stephane Chatty
+ *
+ * $Id$
+ * $CurLog$
+ */
+
+#include "Event.h"
+#include <memory.h>
+
+UchEventFeatureList :: UchEventFeatureList (const UchEventFeatureList& base, int nbf, UchEventFeature* f)
+: CcuListOf <UchEventFeature> (base)
+{
+ Load (nbf, f);
+}
+
+UchEventFeatureList :: UchEventFeatureList (int nbf, UchEventFeature* f)
+: CcuListOf <UchEventFeature> ()
+{
+ Load (nbf, f);
+}
+
+void
+UchEventFeatureList :: Load (int nbf, UchEventFeature* f)
+{
+ while (nbf-- > 0)
+ Append (f++);
+}
+
+UchEventFeatureList :: ~UchEventFeatureList ()
+{
+}
+
+
+CcuListOf <UchEventType>* UchEventType::AllTypes = 0;
+
+void
+UchEventType :: ClassInit ()
+{
+ AllTypes = new CcuListOf <UchEventType>;
+}
+
+UchEventType :: UchEventType (const char* name, int nbf, UchEventFeature f [])
+: Name (name),
+#if 0
+ Features (),
+#endif
+ NbFeatures (nbf),
+ FeaturesOffsets (new int [nbf])
+{
+ if (!AllTypes)
+ ClassInit ();
+ AllTypes->Append (this);
+ int offset = 0;
+ for (int i = 0; i < nbf; ++i) {
+ offset += f[i].Size;
+ FeaturesOffsets [i] = offset;
+ }
+}
+
+UchEventType :: UchEventType (const char* name, const UchEventFeatureList& fl)
+: Name (name),
+#if 0
+ Features (),
+#endif
+ NbFeatures (fl.Length ()),
+ FeaturesOffsets (new int [NbFeatures])
+{
+ if (!AllTypes)
+ ClassInit ();
+ AllTypes->Append (this);
+ int offset = 0;
+ int i = 0;
+ CcuListIterOf <UchEventFeature> f = fl;
+ while (++f) {
+ offset += (*f)->Size;
+ FeaturesOffsets [i] = offset;
+ ++i;
+ }
+}
+
+UchEventType :: ~UchEventType ()
+{
+ AllTypes->Remove (this);
+ delete [] FeaturesOffsets;
+}
+
+UchEvent :: UchEvent (const UchEventType* t)
+: Type (*t)
+{
+ Data = new char [t->GetTotalSize ()];
+}
+
+UchEvent :: ~UchEvent ()
+{
+ delete [] Data;
+}
+
+void
+UchEvent :: SetFeature (int i, const void* data)
+{
+ int offset = Type.GetOffset (i);
+ int size = Type.GetSize (i);
+ memcpy (Data+offset, data, size);
+}
+
+void
+UchEvent :: GetFeature (int i, void* data)
+{
+ int offset = Type.GetOffset (i);
+ int size = Type.GetSize (i);
+ memcpy (data, Data+offset, size);
+}
+