From 52985e49dbbf4e35c2b725ffc835a4bd34232d58 Mon Sep 17 00:00:00 2001 From: chatty Date: Thu, 13 Jul 1995 12:37:23 +0000 Subject: Added DnnEvent (DnnEventType*, bool) --- dnn/Event.cc | 21 ++++++++++++++++++--- dnn/Event.h | 4 ++-- 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 (); -- cgit v1.1