00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_POA_CURRENT_IMPL_H
00014 #define TAO_POA_CURRENT_IMPL_H
00015
00016 #include "ace/pre.h"
00017
00018 #include "tao/PortableServer/portableserver_export.h"
00019
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif
00023
00024 #include "tao/PortableServer/PS_ForwardC.h"
00025
00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00027
00028 namespace TAO
00029 {
00030 namespace Portable_Server
00031 {
00032 class Non_Servant_Upcall;
00033 class Servant_Upcall;
00034 }
00035
00036 class ObjectKey;
00037 }
00038
00039 class TAO_TSS_Resources;
00040
00041 namespace TAO
00042 {
00043 namespace Portable_Server
00044 {
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 class TAO_PortableServer_Export POA_Current_Impl
00063 {
00064 public:
00065 friend class ::TAO_Root_POA;
00066
00067
00068
00069 PortableServer::POA_ptr get_POA (void);
00070
00071
00072
00073
00074
00075
00076 PortableServer::ObjectId *get_object_id (void);
00077
00078
00079
00080
00081
00082 PortableServer::Servant get_servant (void);
00083
00084
00085
00086
00087
00088 CORBA::Object_ptr get_reference (void);
00089
00090
00091 void poa (::TAO_Root_POA *);
00092
00093
00094 ::TAO_Root_POA *poa (void) const;
00095
00096
00097 TAO_ORB_Core &orb_core (void) const;
00098
00099
00100 void object_id (const PortableServer::ObjectId &id);
00101
00102
00103 const PortableServer::ObjectId &object_id (void) const;
00104
00105
00106 void replace_object_id (const PortableServer::ObjectId &system_id);
00107
00108
00109 void object_key (const TAO::ObjectKey &key);
00110
00111
00112 const TAO::ObjectKey &object_key (void) const;
00113
00114
00115 void servant (PortableServer::Servant servant);
00116
00117
00118 PortableServer::Servant servant (void) const;
00119
00120
00121 void priority (CORBA::Short priority);
00122
00123
00124 CORBA::Short priority (void) const;
00125
00126
00127 POA_Current_Impl (void);
00128
00129
00130 POA_Current_Impl *previous (void) const;
00131
00132
00133 void teardown (void);
00134
00135
00136 void setup (::TAO_Root_POA *impl,
00137 const TAO::ObjectKey &key);
00138
00139 private:
00140
00141
00142 POA_Current_Impl (const POA_Current_Impl &);
00143 void operator= (const POA_Current_Impl &);
00144
00145 protected:
00146
00147 ::TAO_Root_POA *poa_;
00148
00149
00150
00151
00152
00153
00154 PortableServer::ObjectId object_id_;
00155
00156
00157 const TAO::ObjectKey *object_key_;
00158
00159
00160 PortableServer::Servant servant_;
00161
00162
00163 CORBA::Short priority_;
00164
00165
00166 POA_Current_Impl *previous_current_impl_;
00167
00168
00169 int setup_done_;
00170
00171
00172 TAO_TSS_Resources *tss_resources_;
00173
00174 };
00175 }
00176 }
00177
00178 TAO_END_VERSIONED_NAMESPACE_DECL
00179
00180 #if defined (__ACE_INLINE__)
00181 # include "tao/PortableServer/POA_Current_Impl.inl"
00182 #endif
00183
00184 #include "ace/post.h"
00185
00186 #endif