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 ParserPool & getParser () const =0
 Obtains a non-validating parser pool.
virtual ParserPool & getValidatingParser () const =0
 Obtains a validating parser pool.
virtual Mutex & getNamedMutex (const char *name)=0
 Returns a reference to a named mutex.
const KeyInfoResolver * getKeyInfoResolver () const
 Returns the global KeyInfoResolver instance.
ReplayCache * getReplayCache () const
 Returns the global ReplayCache instance.
void setKeyInfoResolver (KeyInfoResolver *keyInfoResolver)
 Sets the global KeyInfoResolver instance.
void setReplayCache (ReplayCache *replayCache)
 Sets the global ReplayCache instance.
PathResolver * getPathResolver () const
 Returns the global PathResolver instance.
TemplateEngine * getTemplateEngine () const
 Returns the global TemplateEngine instance.
const URLEncoder * getURLEncoder () 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 XSECCryptoX509CRL * X509CRL () 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 XMLToolingConfig & getConfig ()
 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

KeyInfoResolver * m_keyInfoResolver
 Global KeyInfoResolver instance.
ReplayCache * m_replayCache
 Global ReplayCache instance.
PathResolver * m_pathResolver
 Global PathResolver instance.
TemplateEngine * m_templateEngine
 Global TemplateEngine instance.
URLEncoder * m_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 Fri Mar 20 02:37:43 2015 for xmltooling by  doxygen 1.4.6