From 7a7d087be6f4f9f0370073505c6c9a1424b505df Mon Sep 17 00:00:00 2001 From: venkita Date: Thu, 20 Mar 2003 00:48:13 +0000 Subject: ChangeLogTag: Wed Mar 19 18:27:08 2003 Venkita Subramonian --- Kokyu/Dispatcher_Impl.h | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Kokyu/Dispatcher_Impl.h (limited to 'Kokyu/Dispatcher_Impl.h') diff --git a/Kokyu/Dispatcher_Impl.h b/Kokyu/Dispatcher_Impl.h new file mode 100644 index 00000000000..623704b8dbe --- /dev/null +++ b/Kokyu/Dispatcher_Impl.h @@ -0,0 +1,52 @@ +/* -*- C++ -*- */ +/** + * @file Dispatcher_Impl.h + * + * $Id$ + * + * @author Venkita Subramonian (venkita@cs.wustl.edu) + * + * Based on previous work by Tim Harrison (harrison@cs.wustl.edu), + * Chris Gill, Carlos O'Ryan and other members of the DOC group. + */ + +#ifndef DISPATCHER_IMPL_H +#define DISPATCHER_IMPL_H +#include "ace/pre.h" +#include "ace/OS.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "kokyu_export.h" +#include "Kokyu.h" + +namespace Kokyu +{ + class Dispatcher_Impl + { + public: + //following an idiom to avoid public virtual functions. + //instead make them private and use the template method + //pattern - "Virtually Yours" article in CUJ Experts Forum + int init (const ConfigInfoSet&); + int dispatch (const Dispatch_Command*, + const QoSDescriptor&); + int shutdown (); + virtual ~Dispatcher_Impl(); + private: + virtual int init_i (const ConfigInfoSet&) =0; + virtual int dispatch_i (const Dispatch_Command*, + const QoSDescriptor&) =0; + virtual int shutdown_i () =0; + + }; +} //end of namespace + +#if defined (__ACE_INLINE__) +#include "Dispatcher_Impl.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* DISPATCHER_IMPL_H */ -- cgit v1.2.1