Method_Request.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file Method_Request.h
00005  *
00006  *  $Id: Method_Request.h 79084 2007-07-30 13:13:45Z elliott_c $
00007  *
00008  *  @author Pradeep Gore <pradeep@oomworks.com>
00009  */
00010 
00011 #ifndef TAO_Notify_METHOD_REQUEST_H
00012 #define TAO_Notify_METHOD_REQUEST_H
00013 
00014 #include /**/ "ace/pre.h"
00015 
00016 #include "orbsvcs/Notify/notify_serv_export.h"
00017 
00018 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00019 # pragma once
00020 #endif /* ACE_LACKS_PRAGMA_ONCE */
00021 
00022 #include "ace/Message_Block.h"
00023 #include "ace/Bound_Ptr.h"
00024 #include "ace/OS_NS_sys_time.h"
00025 
00026 #include "orbsvcs/Notify/Event.h"
00027 
00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00029 
00030 class TAO_Notify_Method_Request_Queueable;
00031 
00032 /**
00033  * @class TAO_Notify_Method_Request
00034  *
00035  * @brief Base class for Method Requests
00036  *
00037  */
00038 class TAO_Notify_Serv_Export TAO_Notify_Method_Request
00039 {
00040 public:
00041   /// Destructor.
00042   virtual ~TAO_Notify_Method_Request (void);
00043 
00044   /// Execute the Request
00045   virtual int execute (void) = 0;
00046   virtual TAO_Notify_Method_Request_Queueable* copy (void) = 0;
00047 };
00048 
00049 /***********************************************************************/
00050 
00051 /**
00052  * @class TAO_Notify_Method_Request_Queueable
00053  *
00054  * @brief Interface for NS method Requests
00055  *
00056  */
00057 class TAO_Notify_Serv_Export TAO_Notify_Method_Request_Queueable
00058   : public ACE_Message_Block
00059   , public TAO_Notify_Method_Request
00060 {
00061 public:
00062   enum {PRIORITY_BASE = 32768};
00063 
00064   TAO_Notify_Method_Request_Queueable();
00065   TAO_Notify_Method_Request_Queueable(const TAO_Notify_Event * event);
00066 
00067   virtual TAO_Notify_Method_Request_Queueable* copy (void);
00068   void init (const TAO_Notify_Event * event);
00069 
00070   /// The creation time of the event to which this request corresponds.
00071   const ACE_Time_Value& creation_time (void) const;
00072 
00073 private:
00074   ACE_Time_Value time_;
00075 };
00076 
00077 TAO_END_VERSIONED_NAMESPACE_DECL
00078 
00079 #include /**/ "ace/post.h"
00080 
00081 #endif /* TAO_Notify_METHOD_REQUEST_H */

Generated on Tue Feb 2 17:45:29 2010 for TAO_CosNotification by  doxygen 1.4.7