00001 // -*- C++ -*- 00002 // 00003 // $Id: RTScheduler_Manager.inl 89511 2010-03-17 13:55:49Z vzykov $ 00004 00005 #include "tao/ORB_Core.h" 00006 #include "tao/ORB.h" 00007 00008 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00009 00010 // ************************************************************* 00011 // Inline operations for class TAO_RTScheduler_Manager_var 00012 // ************************************************************* 00013 00014 ACE_INLINE 00015 TAO_RTScheduler_Manager_var::TAO_RTScheduler_Manager_var (void) 00016 : ptr_ (TAO_RTScheduler_Manager::_nil ()) 00017 {} 00018 00019 ACE_INLINE 00020 TAO_RTScheduler_Manager_var::TAO_RTScheduler_Manager_var ( 00021 TAO_RTScheduler_Manager_ptr p) 00022 : ptr_ (p) 00023 {} 00024 00025 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00026 TAO_RTScheduler_Manager_var::ptr (void) const 00027 { 00028 return this->ptr_; 00029 } 00030 00031 ACE_INLINE 00032 TAO_RTScheduler_Manager_var::TAO_RTScheduler_Manager_var ( 00033 const ::TAO_RTScheduler_Manager_var &p) // copy constructor 00034 : TAO_Base_var (), 00035 ptr_ (TAO_RTScheduler_Manager::_duplicate (p.ptr ())) 00036 {} 00037 00038 ACE_INLINE 00039 TAO_RTScheduler_Manager_var::~TAO_RTScheduler_Manager_var (void) 00040 { 00041 CORBA::release (this->ptr_); 00042 } 00043 00044 ACE_INLINE TAO_RTScheduler_Manager_var & 00045 TAO_RTScheduler_Manager_var::operator= (TAO_RTScheduler_Manager_ptr p) 00046 { 00047 CORBA::release (this->ptr_); 00048 this->ptr_ = p; 00049 return *this; 00050 } 00051 00052 ACE_INLINE TAO_RTScheduler_Manager_var & 00053 TAO_RTScheduler_Manager_var::operator= (const ::TAO_RTScheduler_Manager_var &p) 00054 { 00055 if (this != &p) 00056 { 00057 CORBA::release (this->ptr_); 00058 this->ptr_ = ::TAO_RTScheduler_Manager::_duplicate (p.ptr ()); 00059 } 00060 00061 return *this; 00062 } 00063 00064 ACE_INLINE 00065 TAO_RTScheduler_Manager_var::operator const ::TAO_RTScheduler_Manager_ptr &() const // cast 00066 { 00067 return this->ptr_; 00068 } 00069 00070 ACE_INLINE 00071 TAO_RTScheduler_Manager_var::operator ::TAO_RTScheduler_Manager_ptr &() // cast 00072 { 00073 return this->ptr_; 00074 } 00075 00076 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00077 TAO_RTScheduler_Manager_var::operator-> (void) const 00078 { 00079 return this->ptr_; 00080 } 00081 00082 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00083 TAO_RTScheduler_Manager_var::in (void) const 00084 { 00085 return this->ptr_; 00086 } 00087 00088 ACE_INLINE ::TAO_RTScheduler_Manager_ptr & 00089 TAO_RTScheduler_Manager_var::inout (void) 00090 { 00091 return this->ptr_; 00092 } 00093 00094 ACE_INLINE ::TAO_RTScheduler_Manager_ptr & 00095 TAO_RTScheduler_Manager_var::out (void) 00096 { 00097 CORBA::release (this->ptr_); 00098 this->ptr_ = ::TAO_RTScheduler_Manager::_nil (); 00099 return this->ptr_; 00100 } 00101 00102 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00103 TAO_RTScheduler_Manager_var::_retn (void) 00104 { 00105 // yield ownership of managed obj reference 00106 ::TAO_RTScheduler_Manager_ptr val = this->ptr_; 00107 this->ptr_ = ::TAO_RTScheduler_Manager::_nil (); 00108 return val; 00109 } 00110 00111 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00112 TAO_RTScheduler_Manager_var::duplicate (TAO_RTScheduler_Manager_ptr p) 00113 { 00114 return ::TAO_RTScheduler_Manager::_duplicate (p); 00115 } 00116 00117 ACE_INLINE void 00118 TAO_RTScheduler_Manager_var::release (TAO_RTScheduler_Manager_ptr p) 00119 { 00120 CORBA::release (p); 00121 } 00122 00123 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00124 TAO_RTScheduler_Manager_var::nil (void) 00125 { 00126 return ::TAO_RTScheduler_Manager::_nil (); 00127 } 00128 00129 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00130 TAO_RTScheduler_Manager_var::narrow ( 00131 CORBA::Object * p 00132 ) 00133 { 00134 return ::TAO_RTScheduler_Manager::_narrow (p); 00135 } 00136 00137 ACE_INLINE CORBA::Object * 00138 TAO_RTScheduler_Manager_var::upcast (void *src) 00139 { 00140 TAO_RTScheduler_Manager **tmp = 00141 static_cast<TAO_RTScheduler_Manager **> (src); 00142 return *tmp; 00143 } 00144 00145 00146 // ************************************************************* 00147 // Inline operations for class TAO_RTScheduler_Manager_out 00148 // ************************************************************* 00149 00150 ACE_INLINE 00151 TAO_RTScheduler_Manager_out::TAO_RTScheduler_Manager_out (TAO_RTScheduler_Manager_ptr &p) 00152 : ptr_ (p) 00153 { 00154 this->ptr_ = ::TAO_RTScheduler_Manager::_nil (); 00155 } 00156 00157 ACE_INLINE 00158 TAO_RTScheduler_Manager_out::TAO_RTScheduler_Manager_out (TAO_RTScheduler_Manager_var &p) // constructor from _var 00159 : ptr_ (p.out ()) 00160 { 00161 CORBA::release (this->ptr_); 00162 this->ptr_ = ::TAO_RTScheduler_Manager::_nil (); 00163 } 00164 00165 ACE_INLINE 00166 TAO_RTScheduler_Manager_out::TAO_RTScheduler_Manager_out (const ::TAO_RTScheduler_Manager_out &p) // copy constructor 00167 : ptr_ (const_cast<TAO_RTScheduler_Manager_out &> (p).ptr_) 00168 {} 00169 00170 ACE_INLINE ::TAO_RTScheduler_Manager_out & 00171 TAO_RTScheduler_Manager_out::operator= (const ::TAO_RTScheduler_Manager_out &p) 00172 { 00173 this->ptr_ = const_cast<TAO_RTScheduler_Manager_out&> (p).ptr_; 00174 return *this; 00175 } 00176 00177 ACE_INLINE TAO_RTScheduler_Manager_out & 00178 TAO_RTScheduler_Manager_out::operator= (const ::TAO_RTScheduler_Manager_var &p) 00179 { 00180 this->ptr_ = ::TAO_RTScheduler_Manager::_duplicate (p.ptr ()); 00181 return *this; 00182 } 00183 00184 ACE_INLINE TAO_RTScheduler_Manager_out & 00185 TAO_RTScheduler_Manager_out::operator= (TAO_RTScheduler_Manager_ptr p) 00186 { 00187 this->ptr_ = p; 00188 return *this; 00189 } 00190 00191 ACE_INLINE 00192 TAO_RTScheduler_Manager_out::operator ::TAO_RTScheduler_Manager_ptr &() // cast 00193 { 00194 return this->ptr_; 00195 } 00196 00197 ACE_INLINE ::TAO_RTScheduler_Manager_ptr & 00198 TAO_RTScheduler_Manager_out::ptr (void) // ptr 00199 { 00200 return this->ptr_; 00201 } 00202 00203 ACE_INLINE ::TAO_RTScheduler_Manager_ptr 00204 TAO_RTScheduler_Manager_out::operator-> (void) 00205 { 00206 return this->ptr_; 00207 } 00208 00209 /////////////////////////////////////////////////////////////////////////// 00210 ACE_INLINE 00211 TAO_RTScheduler_Manager::TAO_RTScheduler_Manager (TAO_ORB_Core* orb) 00212 : orb_ (orb) 00213 { 00214 } 00215 00216 ACE_INLINE RTScheduling::Scheduler_ptr 00217 TAO_RTScheduler_Manager::rtscheduler (void) 00218 { 00219 return RTScheduling::Scheduler::_duplicate (this->rtscheduler_.in()); 00220 } 00221 00222 ACE_INLINE void 00223 TAO_RTScheduler_Manager::rtscheduler (RTScheduling::Scheduler_ptr rtscheduler 00224 ) 00225 { 00226 this->rtscheduler_ = RTScheduling::Scheduler::_duplicate (rtscheduler); 00227 this->orb_->orb ()->register_initial_reference ( 00228 "RTScheduler", 00229 this->rtscheduler_.in () 00230 ); 00231 } 00232 00233 TAO_END_VERSIONED_NAMESPACE_DECL