summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchatty1995-07-13 12:37:23 +0000
committerchatty1995-07-13 12:37:23 +0000
commit52985e49dbbf4e35c2b725ffc835a4bd34232d58 (patch)
tree18f82beb7c0b20606119991f6463b3b13bbb6bd1
parent695304d5aa8235993b35f933dd44339e68b211e4 (diff)
downloadivy-league-52985e49dbbf4e35c2b725ffc835a4bd34232d58.zip
ivy-league-52985e49dbbf4e35c2b725ffc835a4bd34232d58.tar.gz
ivy-league-52985e49dbbf4e35c2b725ffc835a4bd34232d58.tar.bz2
ivy-league-52985e49dbbf4e35c2b725ffc835a4bd34232d58.tar.xz
Added DnnEvent (DnnEventType*, bool)
-rw-r--r--dnn/Event.cc21
-rw-r--r--dnn/Event.h4
2 files changed, 20 insertions, 5 deletions
diff --git a/dnn/Event.cc b/dnn/Event.cc
index 3dbf5fb..3868985 100644
--- a/dnn/Event.cc
+++ b/dnn/Event.cc
@@ -3,7 +3,7 @@
*
* by Stephane Chatty
*
- * Copyright 1993-1994
+ * Copyright 1993-1995
* Centre d'Etudes de la Navigation Aerienne (CENA)
*
* Events.
@@ -109,7 +109,7 @@ DnnEventType :: ~DnnEventType ()
}
/*?
-Build an even of type \var{t}.
+Build an event of type \var{t}.
?*/
DnnEvent :: DnnEvent (const DnnEventType* t)
: Type (*t)
@@ -121,10 +121,25 @@ DnnEvent :: DnnEvent (const DnnEventType* t)
Data = 0;
}
+
+DnnEvent :: DnnEvent (const DnnEventType* t, bool alloc)
+: Type (*t)
+{
+ if (alloc) {
+ int sz = t->GetTotalSize ();
+ if (sz > 0)
+ Data = new char [sz];
+ else
+ Data = 0;
+ } else {
+ Data = (char*) (&Data + sizeof (char*));
+ }
+}
+
/*?nodoc?*/
DnnEvent :: ~DnnEvent ()
{
- if (Data)
+ if (Data && Data != (char*) (&Data+sizeof (char*)))
delete [] Data;
}
diff --git a/dnn/Event.h b/dnn/Event.h
index 3181f81..40197fc 100644
--- a/dnn/Event.h
+++ b/dnn/Event.h
@@ -22,8 +22,7 @@
#include "cplus_bugs.h"
#include "ccu/String.h"
#include "ccu/List.h"
-
-class UchIOS;
+#include "ccu/bool.h"
#if 0
@@ -90,6 +89,7 @@ protected:
const DnnEventType& Type;
char* Data;
+ DnnEvent (const DnnEventType*, bool);
public:
DnnEvent (const DnnEventType*);
~DnnEvent ();