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 */