diff options
Diffstat (limited to 'ACE/apps/JAWS2/JAWS/Policy.h')
-rw-r--r-- | ACE/apps/JAWS2/JAWS/Policy.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/ACE/apps/JAWS2/JAWS/Policy.h b/ACE/apps/JAWS2/JAWS/Policy.h new file mode 100644 index 00000000000..eb63bd8d0d9 --- /dev/null +++ b/ACE/apps/JAWS2/JAWS/Policy.h @@ -0,0 +1,65 @@ +/* -*- c++ -*- */ +// $Id$ + +#ifndef JAWS_POLICY_H +#define JAWS_POLICY_H + +#include "JAWS/Export.h" +#include "JAWS/Concurrency.h" + +class JAWS_IO; +class JAWS_IO_Handler; +class JAWS_IO_Handler_Factory; + +/** + * Policy mechanism for choosing different concurrency models. + * + * Given some (unspecified) state, decides what the concurrency + * model should be. (For now, we always return the same model.) + */ +class JAWS_Export JAWS_Dispatch_Policy +{ +public: + JAWS_Dispatch_Policy (void); + virtual ~JAWS_Dispatch_Policy (void); + + virtual int ratio (void) = 0; + virtual JAWS_IO * io (void) = 0; + virtual JAWS_IO_Handler_Factory *ioh_factory (void) = 0; + virtual JAWS_IO_Acceptor *acceptor (void) = 0; + virtual JAWS_Concurrency_Base * concurrency (void) = 0; + + virtual void ratio (int r) = 0; + virtual void io (JAWS_IO *iop) = 0; + virtual void ioh_factory (JAWS_IO_Handler_Factory *factoryp) = 0; + virtual void acceptor (JAWS_IO_Acceptor *acceptorp) = 0; + virtual void concurrency (JAWS_Concurrency_Base *concp) = 0; +}; + +class JAWS_Export JAWS_Default_Dispatch_Policy : public JAWS_Dispatch_Policy +{ +public: + JAWS_Default_Dispatch_Policy (void); + virtual ~JAWS_Default_Dispatch_Policy (void); + + virtual int ratio (void); + virtual JAWS_IO *io (void); + virtual JAWS_IO_Handler_Factory *ioh_factory (void); + virtual JAWS_IO_Acceptor *acceptor (void); + virtual JAWS_Concurrency_Base *concurrency (void); + + virtual void ratio (int r); + virtual void io (JAWS_IO *iop); + virtual void ioh_factory (JAWS_IO_Handler_Factory *factoryp); + virtual void acceptor (JAWS_IO_Acceptor *acceptorp); + virtual void concurrency (JAWS_Concurrency_Base *concp); + +private: + int ratio_; + JAWS_Concurrency_Base *concurrency_; + JAWS_IO_Handler_Factory *ioh_factory_; + JAWS_IO_Acceptor *acceptor_; + JAWS_IO *io_; +}; + +#endif /* !defined (JAWS_POLICY_H) */ |