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(), and orb_core_.

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.

References tss_slot_.

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.

Referenced by implementation().

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.

Referenced by tss_slot().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:48:34 2010 for TAO_Security by  doxygen 1.4.7