#include <Scheme.h>

Inheritance diagram for Auth::Scheme:
Collaboration diagram for Auth::Scheme:

Public Types

typedef RefCount< SchemePointer
 
typedef std::vector< Scheme::Pointer >::iterator iterator
 
typedef std::vector< Scheme::Pointer >::const_iterator const_iterator
 

Public Member Functions

 Scheme ()
 
virtual ~Scheme ()
 
virtual char const * type () const =0
 
virtual void shutdownCleanup ()=0
 
virtual Auth::SchemeConfigcreateConfig ()=0
 
 Scheme (Scheme const &)
 
Schemeoperator= (Scheme const &)
 

Static Public Member Functions

static void AddScheme (Scheme::Pointer)
 
static void FreeAll ()
 
static Scheme::Pointer Find (const char *)
 
static std::vector< Scheme::Pointer > & GetSchemes ()
 

Protected Attributes

bool initialised
 

Static Private Attributes

static std::vector< Scheme::Pointer > * _Schemes = NULL
 

Detailed Description

I represent an authentication scheme. For now my children store the scheme metadata.

Should we need multiple configs of a single scheme, a new class should be made, and the config specific calls on Auth::Scheme moved to it.

Definition at line 27 of file Scheme.h.

Member Typedef Documentation

◆ const_iterator

◆ iterator

Definition at line 31 of file Scheme.h.

◆ Pointer

Definition at line 30 of file Scheme.h.

Constructor & Destructor Documentation

◆ Scheme() [1/2]

Auth::Scheme::Scheme ( )
inline

Definition at line 35 of file Scheme.h.

Referenced by ~Scheme().

◆ ~Scheme()

virtual Auth::Scheme::~Scheme ( )
inlinevirtual

◆ Scheme() [2/2]

Auth::Scheme::Scheme ( Scheme const &  )

Member Function Documentation

◆ AddScheme()

void Auth::Scheme::AddScheme ( Scheme::Pointer  instance)
static

Definition at line 20 of file Scheme.cc.

References assert, GetSchemes(), and i.

Referenced by ~Scheme().

◆ createConfig()

virtual Auth::SchemeConfig* Auth::Scheme::createConfig ( )
pure virtual

Referenced by ~Scheme().

◆ Find()

Auth::Scheme::Pointer Auth::Scheme::Find ( const char *  typestr)
static

Locate an authentication scheme component by Name.

Definition at line 33 of file Scheme.cc.

References GetSchemes(), i, and NULL.

Referenced by getConfig(), parse_authparam(), Auth::UserRequest::scheme(), and ~Scheme().

◆ FreeAll()

void Auth::Scheme::FreeAll ( )
static

Final termination of all authentication components. To be used only on shutdown. All global pointers are released. After this all schemes will appear completely unsupported until a call to InitAuthModules(). Release the Auth::TheConfig handles instead to disable authentication without terminiating all support.

Called when a graceful shutdown is to occur of each scheme module. On completion the auth components are to be considered deleted. None will be available globally. Some may remain around for their currently active connections to close, but only those active connections will retain pointers to them.

Definition at line 60 of file Scheme.cc.

References assert, GetSchemes(), shutting_down, and size.

Referenced by SignalEngine::FinalShutdownRunners(), and ~Scheme().

◆ GetSchemes()

std::vector< Auth::Scheme::Pointer > & Auth::Scheme::GetSchemes ( )
static

◆ operator=()

Scheme& Auth::Scheme::operator= ( Scheme const &  )

Referenced by ~Scheme().

◆ shutdownCleanup()

virtual void Auth::Scheme::shutdownCleanup ( )
pure virtual

Referenced by ~Scheme().

◆ type()

virtual char const* Auth::Scheme::type ( ) const
pure virtual

Referenced by ~Scheme().

Member Data Documentation

◆ _Schemes

std::vector< Auth::Scheme::Pointer > * Auth::Scheme::_Schemes = NULL
staticprivate

Definition at line 70 of file Scheme.h.

Referenced by GetSchemes().

◆ initialised

bool Auth::Scheme::initialised
protected

Definition at line 67 of file Scheme.h.


The documentation for this class was generated from the following files:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors