diff options
Diffstat (limited to 'ACE/Kokyu/Kokyu.cpp')
-rw-r--r-- | ACE/Kokyu/Kokyu.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/ACE/Kokyu/Kokyu.cpp b/ACE/Kokyu/Kokyu.cpp new file mode 100644 index 00000000000..1146f1ee315 --- /dev/null +++ b/ACE/Kokyu/Kokyu.cpp @@ -0,0 +1,55 @@ +// $Id$ + +#include "Kokyu.h" + +#include "Default_Dispatcher_Impl.h" + +#if ! defined (__ACE_INLINE__) +#include "Kokyu.inl" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Kokyu, Kokyu, "$Id$") + +namespace Kokyu +{ + +int Dispatcher::dispatch (const Dispatch_Command* cmd, const QoSDescriptor& qos) +{ + return dispatcher_impl_->dispatch (cmd, qos); +} + +int Dispatcher::shutdown () +{ + return dispatcher_impl_->shutdown (); +} + +int Dispatcher::activate () +{ + return dispatcher_impl_->activate (); +} + +void Dispatcher::implementation (Dispatcher_Impl* impl) +{ + auto_ptr<Dispatcher_Impl> tmp_impl (impl); + dispatcher_impl_ = tmp_impl; + + //I couldn't use reset because MSVC++ auto_ptr does not have reset method. + //So in configurations where the auto_ptr maps to the std::auto_ptr instead + //of ACE auto_ptr, this would be a problem. + //dispatcher_impl_.reset (impl); +} + +Dispatcher* +Dispatcher_Factory:: +create_dispatcher(const Dispatcher_Attributes& attrs) +{ + Dispatcher* disp; + Dispatcher_Impl* tmp; + ACE_NEW_RETURN (tmp, Default_Dispatcher_Impl, 0); + ACE_NEW_RETURN (disp, Dispatcher, 0); + disp->implementation (tmp); + tmp->init (attrs); + return disp; +} + +} |