xmltooling::XMLToolingConfig Class Reference

Singleton object that manages library startup/shutdown.configuration. More...

#include <xmltooling/XMLToolingConfig.h>

Inheritance diagram for xmltooling::XMLToolingConfig:

xmltooling::Lockable List of all members.

Public Types

enum  XMLSecurityAlgorithmType {
  ALGTYPE_UNK, ALGTYPE_DIGEST, ALGTYPE_SIGN, ALGTYPE_ENCRYPT,
  ALGTYPE_KEYENCRYPT, ALGTYPE_KEYAGREE, ALGTYPE_AUTHNENCRYPT
}
 Types of XML Security algorithms.

Public Member Functions

virtual bool init ()=0
 Initializes library.
virtual void term ()=0
 Shuts down library.
virtual bool load_library (const char *path, void *context=0)=0
 Loads a shared/dynamic library extension.
virtual bool log_config (const char *config=0)=0
 Configure logging system.
virtual ParserPoolgetParser () const =0
 Obtains a non-validating parser pool.
virtual ParserPoolgetValidatingParser () const =0
 Obtains a validating parser pool.
virtual MutexgetNamedMutex (const char *name)=0
 Returns a reference to a named mutex.
const KeyInfoResolvergetKeyInfoResolver () const
 Returns the global KeyInfoResolver instance.
ReplayCachegetReplayCache () const
 Returns the global ReplayCache instance.
void setKeyInfoResolver (KeyInfoResolver *keyInfoResolver)
 Sets the global KeyInfoResolver instance.
void setReplayCache (ReplayCache *replayCache)
 Sets the global ReplayCache instance.
PathResolvergetPathResolver () const
 Returns the global PathResolver instance.
TemplateEnginegetTemplateEngine () const
 Returns the global TemplateEngine instance.
const URLEncodergetURLEncoder () const
 Returns the global URLEncoder instance.
void setPathResolver (PathResolver *pathResolver)
 Sets the global PathResolver instance.
void setTemplateEngine (TemplateEngine *templateEngine)
 Sets the global TemplateEngine instance.
void setURLEncoder (URLEncoder *urlEncoder)
 Sets the global URLEncoder instance.
virtual XSECCryptoX509CRLX509CRL () const =0
 Returns an X.509 CRL implementation object.
virtual std::pair< const char *,
unsigned int > 
mapXMLAlgorithmToKeyAlgorithm (const XMLCh *xmlAlgorithm) const =0
 Maps an XML Signature/Encryption algorithm identifier to a library-specific key algorithm and size for use in resolving credentials.
virtual void registerXMLAlgorithm (const XMLCh *xmlAlgorithm, const char *keyAlgorithm, unsigned int size=0, XMLSecurityAlgorithmType type=ALGTYPE_UNK)=0
 Registers an XML Signature/Encryption algorithm identifier against a library-specific key algorithm and size for use in resolving credentials.
virtual bool isXMLAlgorithmSupported (const XMLCh *xmlAlgorithm, XMLSecurityAlgorithmType type=ALGTYPE_UNK)=0
 Checks for implementation support of a particular XML Security algorithm.

Static Public Member Functions

static XMLToolingConfiggetConfig ()
 Returns the global configuration object for the library.

Public Attributes

std::string catalog_path
std::string user_agent
 A User-Agent header to include in HTTP client requests.
unsigned int clock_skew_secs
 Adjusts any clock comparisons to be more liberal/permissive by the indicated number of seconds.
PluginManager< StorageService,
std::string, const xercesc::DOMElement * > 
StorageServiceManager
 Manages factories for StorageService plugins.
PluginManager< CredentialResolver,
std::string, const xercesc::DOMElement * > 
CredentialResolverManager
 Manages factories for CredentialResolver plugins.
PluginManager< KeyInfoResolver,
std::string, const xercesc::DOMElement * > 
KeyInfoResolverManager
 Manages factories for KeyInfoResolver plugins.
PluginManager< PathValidator,
std::string, const xercesc::DOMElement * > 
PathValidatorManager
 Manages factories for PathValidator plugins.
PluginManager< TrustEngine,
std::string, const xercesc::DOMElement * > 
TrustEngineManager
 Manages factories for TrustEngine plugins.
PluginManager< SOAPTransport,
std::string, SOAPTransport::Address
SOAPTransportManager
 Manages factories for SOAPTransport plugins.

Protected Attributes

KeyInfoResolverm_keyInfoResolver
 Global KeyInfoResolver instance.
ReplayCachem_replayCache
 Global ReplayCache instance.
PathResolverm_pathResolver
 Global PathResolver instance.
TemplateEnginem_templateEngine
 Global TemplateEngine instance.
URLEncoderm_urlEncoder
 Global URLEncoder instance for use by URL-related functions.

Detailed Description

Singleton object that manages library startup/shutdown.configuration.

A locking interface is supplied as a convenience for code that wants to obtain a global system lock, but the actual configuration itself is not synchronized.


Member Function Documentation

static XMLToolingConfig& xmltooling::XMLToolingConfig::getConfig  )  [static]
 

Returns the global configuration object for the library.

Returns:
reference to the global library configuration object

const KeyInfoResolver* xmltooling::XMLToolingConfig::getKeyInfoResolver  )  const
 

Returns the global KeyInfoResolver instance.

Returns:
global KeyInfoResolver or nullptr

virtual Mutex& xmltooling::XMLToolingConfig::getNamedMutex const char *  name  )  [pure virtual]
 

Returns a reference to a named mutex.

The first access to a given name will create the object.

Parameters:
name name of mutex to access
Returns:
reference to a mutex object

virtual ParserPool& xmltooling::XMLToolingConfig::getParser  )  const [pure virtual]
 

Obtains a non-validating parser pool.

Library must be initialized first.

Returns:
reference to a non-validating parser pool.

PathResolver* xmltooling::XMLToolingConfig::getPathResolver  )  const
 

Returns the global PathResolver instance.

Returns:
global PathResolver or nullptr

ReplayCache* xmltooling::XMLToolingConfig::getReplayCache  )  const
 

Returns the global ReplayCache instance.

Returns:
global ReplayCache or nullptr

TemplateEngine* xmltooling::XMLToolingConfig::getTemplateEngine  )  const
 

Returns the global TemplateEngine instance.

Returns:
global TemplateEngine or nullptr

const URLEncoder* xmltooling::XMLToolingConfig::getURLEncoder  )  const
 

Returns the global URLEncoder instance.

Returns:
global URLEncoder or nullptr

virtual ParserPool& xmltooling::XMLToolingConfig::getValidatingParser  )  const [pure virtual]
 

Obtains a validating parser pool.

Library must be initialized first. Schema/catalog registration must be externally synchronized.

Returns:
reference to a validating parser pool.

virtual bool xmltooling::XMLToolingConfig::init  )  [pure virtual]
 

Initializes library.

Each process using the library MUST call this function exactly once before using any library classes except for the LogConfig method.

Returns:
true iff initialization was successful

virtual bool xmltooling::XMLToolingConfig::isXMLAlgorithmSupported const XMLCh *  xmlAlgorithm,
XMLSecurityAlgorithmType  type = ALGTYPE_UNK
[pure virtual]
 

Checks for implementation support of a particular XML Security algorithm.

Parameters:
xmlAlgorithm XML Signature/Encryption algorithm identifier
type type of algorithm, or ALGTYPE_UNK to ignore
Returns:
true iff the algorithm is supported by the underlying libraries

virtual bool xmltooling::XMLToolingConfig::load_library const char *  path,
void *  context = 0
[pure virtual]
 

Loads a shared/dynamic library extension.

Extension libraries are managed using a pair of "C" linkage functions:
extern "C" int xmltooling_extension_init(void* context);
extern "C" void xmltooling_extension_term();

This method is internally synchronized.

Parameters:
path pathname of shared library to load into process
context arbitrary data to pass to library initialization hook
Returns:
true iff library was loaded successfully

virtual bool xmltooling::XMLToolingConfig::log_config const char *  config = 0  )  [pure virtual]
 

Configure logging system.

May be called first, before initializing the library. Other calls to it must be externally synchronized.

Parameters:
config either a logging configuration file, or a level from the set (DEBUG, INFO, NOTICE, WARN, ERROR, CRIT, ALERT, FATAL, EMERG)
Returns:
true iff configuration was successful

virtual std::pair<const char*,unsigned int> xmltooling::XMLToolingConfig::mapXMLAlgorithmToKeyAlgorithm const XMLCh *  xmlAlgorithm  )  const [pure virtual]
 

Maps an XML Signature/Encryption algorithm identifier to a library-specific key algorithm and size for use in resolving credentials.

Parameters:
xmlAlgorithm XML Signature/Encryption algorithm identifier
Returns:
a general key algorithm and key size (or 0 if the size is irrelevant)

virtual void xmltooling::XMLToolingConfig::registerXMLAlgorithm const XMLCh *  xmlAlgorithm,
const char *  keyAlgorithm,
unsigned int  size = 0,
XMLSecurityAlgorithmType  type = ALGTYPE_UNK
[pure virtual]
 

Registers an XML Signature/Encryption algorithm identifier against a library-specific key algorithm and size for use in resolving credentials.

Parameters:
xmlAlgorithm XML Signature/Encryption algorithm identifier
keyAlgorithm a key algorithm
size a key size (or 0 if the size is irrelevant)
type type of algorithm, if known

void xmltooling::XMLToolingConfig::setKeyInfoResolver KeyInfoResolver keyInfoResolver  ) 
 

Sets the global KeyInfoResolver instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
keyInfoResolver new KeyInfoResolver instance to store

void xmltooling::XMLToolingConfig::setPathResolver PathResolver pathResolver  ) 
 

Sets the global PathResolver instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
pathResolver new PathResolver instance to store

void xmltooling::XMLToolingConfig::setReplayCache ReplayCache replayCache  ) 
 

Sets the global ReplayCache instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
replayCache new ReplayCache instance to store

void xmltooling::XMLToolingConfig::setTemplateEngine TemplateEngine templateEngine  ) 
 

Sets the global TemplateEngine instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
templateEngine new TemplateEngine instance to store

void xmltooling::XMLToolingConfig::setURLEncoder URLEncoder urlEncoder  ) 
 

Sets the global URLEncoder instance.

This method must be externally synchronized with any code that uses the object. Any previously set object is destroyed.

Parameters:
urlEncoder new URLEncoder instance to store

virtual void xmltooling::XMLToolingConfig::term  )  [pure virtual]
 

Shuts down library.

Each process using the library SHOULD call this function exactly once before terminating itself


Member Data Documentation

std::string xmltooling::XMLToolingConfig::catalog_path
 

Deprecated:
List of catalog files to load into validating parser pool at initialization time.

Like other path settings, the separator depends on the platform (semicolon on Windows, colon otherwise).

PluginManager<SOAPTransport,std::string,SOAPTransport::Address> xmltooling::XMLToolingConfig::SOAPTransportManager
 

Manages factories for SOAPTransport plugins.

The factory interface takes a peer name/endpoint pair.


The documentation for this class was generated from the following file:
Generated on Tue Jun 18 01:41:20 2013 for xmltooling by  doxygen 1.4.6