00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef TAO_SERVICE_CALLBACK_H
00018 #define TAO_SERVICE_CALLBACK_H
00019
00020 #include "ace/pre.h"
00021
00022 #include "tao/Basic_Types.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 #include "tao/TAO_Export.h"
00029 #include "tao/Invocation_Utils.h"
00030 #include "tao/Object.h"
00031 #include "tao/Service_Context.h"
00032
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034
00035 class TAO_Profile;
00036 class TAO_MProfile;
00037 class TAO_Stub;
00038
00039 namespace CORBA
00040 {
00041 class Object;
00042 typedef Object *Object_ptr;
00043 }
00044
00045 namespace IOP
00046 {
00047 class ServiceContextList;
00048 }
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 class TAO_Export TAO_Service_Callbacks
00061 {
00062
00063 public:
00064
00065 enum Profile_Equivalence
00066 {
00067 EQUIVALENT,
00068 NOT_EQUIVALENT,
00069 DONT_KNOW
00070 };
00071
00072
00073
00074 virtual ~TAO_Service_Callbacks (void);
00075
00076
00077
00078 virtual CORBA::Boolean select_profile (const TAO_MProfile &mprofile,
00079 TAO_Profile *&pfile);
00080
00081
00082 virtual CORBA::Boolean object_is_nil (CORBA::Object_ptr obj);
00083
00084
00085
00086 virtual Profile_Equivalence is_profile_equivalent (const TAO_Profile *,
00087 const TAO_Profile *);
00088
00089
00090 virtual CORBA::ULong hash_ft (TAO_Profile *p,
00091 CORBA::ULong m);
00092
00093
00094 virtual CORBA::Boolean is_permanent_forward_condition (const CORBA::Object_ptr obj,
00095 const TAO_Service_Context &service_context) const;
00096
00097
00098
00099
00100
00101 virtual TAO::Invocation_Status raise_comm_failure (
00102 IOP::ServiceContextList &clist,
00103 TAO_Profile *profile
00104 );
00105
00106
00107
00108 virtual TAO::Invocation_Status raise_transient_failure (
00109 IOP::ServiceContextList &clist,
00110 TAO_Profile *profile
00111 );
00112 };
00113
00114 TAO_END_VERSIONED_NAMESPACE_DECL
00115
00116 #include "ace/post.h"
00117
00118 #endif