TAO::SL3::SecurityCurrent Class Reference

SecurityLevel3::SecurityCurrent implementation. More...

#include <SL3_SecurityCurrent.h>

Inheritance diagram for TAO::SL3::SecurityCurrent:

Inheritance graph
[legend]
Collaboration diagram for TAO::SL3::SecurityCurrent:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SecurityCurrent (size_t tss_slot, TAO_ORB_Core *oc)
 Constructor.

size_t tss_slot (void) const
SecurityLevel3::SecurityCurrent Methods
Methods required by the SecurityLevel3::SecurityCurrent interface.

virtual SecurityLevel3::ClientCredentials_ptr client_credentials ()
virtual CORBA::Boolean request_is_local (void)

Protected Member Functions

 ~SecurityCurrent (void)
 Destructor.


Private Member Functions

SecurityCurrent_Implimplementation (void)
Retricted Copying and Assignment
Prevent copying through the copy constructor and the assignment operator.

 SecurityCurrent (const SecurityCurrent &)
void operator= (const SecurityCurrent &)

Private Attributes

const size_t tss_slot_
 Thread-specific storage slot assigned to this object.

TAO_ORB_Core *const  orb_core_

Detailed Description

SecurityLevel3::SecurityCurrent implementation.

Thread-specific information may be retrieved from the target security service through this object.

Note:
This SecurityCurrent implementation basically a variant of the bridge design pattern. All operations are delegated on to concrete implementations.

Definition at line 56 of file SL3_SecurityCurrent.h.


Constructor & Destructor Documentation

TAO::SL3::SecurityCurrent::SecurityCurrent size_t  tss_slot,
TAO_ORB_Core oc
 

Constructor.

TAO::SL3::SecurityCurrent::~SecurityCurrent void   )  [protected]
 

Destructor.

Protected destructor to enforce proper memory management through the reference counting mechanism.

Definition at line 25 of file SL3_SecurityCurrent.cpp.

00026 {
00027 }

TAO::SL3::SecurityCurrent::SecurityCurrent const SecurityCurrent  )  [private]
 


Member Function Documentation

SecurityLevel3::ClientCredentials_ptr TAO::SL3::SecurityCurrent::client_credentials  )  [virtual]
 

Definition at line 30 of file SL3_SecurityCurrent.cpp.

References TAO::SL3::SecurityCurrent_Impl::client_credentials(), and implementation().

00031 {
00032   TAO::SL3::SecurityCurrent_Impl * impl = this->implementation ();
00033 
00034   // If the implementation pointer returned from TSS is zero, then
00035   // we're not in the middle of a request/upcall.  Throw an exception
00036   // to indicate that.
00037   if (impl == 0)
00038     throw CORBA::BAD_INV_ORDER ();
00039 
00040   return impl->client_credentials ();
00041 }

ACE_INLINE TAO::SL3::SecurityCurrent_Impl * TAO::SL3::SecurityCurrent::implementation void   )  [private]
 

The pointer is actually one to a concrete implementation provided by the underlying security mechanism. For example, SSLIOP implements its own SSLIOP-specific operations corresponding to the ones exposed by the SecurityCurrent interface. Similarly, SECIOP would do the same.

There is no function that places the implementation pointer in TSS. The underlying security mechanism does that.

Definition at line 17 of file SL3_SecurityCurrent.inl.

References TAO_ORB_Core::get_tss_resource().

Referenced by client_credentials(), and request_is_local().

00018 {
00019   TAO::SL3::SecurityCurrent_Impl *impl =
00020     static_cast<TAO::SL3::SecurityCurrent_Impl *> (
00021       this->orb_core_->get_tss_resource (this->tss_slot_));
00022 
00023   return impl;
00024 }

void TAO::SL3::SecurityCurrent::operator= const SecurityCurrent  )  [private]
 

CORBA::Boolean TAO::SL3::SecurityCurrent::request_is_local void   )  [virtual]
 

Definition at line 44 of file SL3_SecurityCurrent.cpp.

References implementation(), and TAO::SL3::SecurityCurrent_Impl::request_is_local().

00045 {
00046   TAO::SL3::SecurityCurrent_Impl * impl = this->implementation ();
00047 
00048   // If the implementation pointer returned from TSS is zero, then
00049   // we're not in the middle of a request/upcall.  Throw an exception
00050   // to indicate that.
00051   if (impl == 0)
00052     throw CORBA::BAD_INV_ORDER ();
00053 
00054   return impl->request_is_local ();
00055 }

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE size_t TAO::SL3::SecurityCurrent::tss_slot void   )  const
 

The concrete thread-specific storage SecurityCurrent implementations will each use this slot ID.

Definition at line 11 of file SL3_SecurityCurrent.inl.

00012 {
00013   return this->tss_slot_;
00014 }


Member Data Documentation

TAO_ORB_Core* const TAO::SL3::SecurityCurrent::orb_core_ [private]
 

Pointer to the ORB Core corresponding to the ORB with which this object is registered.

Reimplemented from CORBA::Object.

Definition at line 130 of file SL3_SecurityCurrent.h.

const size_t TAO::SL3::SecurityCurrent::tss_slot_ [private]
 

Thread-specific storage slot assigned to this object.

Definition at line 126 of file SL3_SecurityCurrent.h.


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 16:11:00 2008 for TAO_Security by doxygen 1.3.6