Arc Namespace Reference

Arc namespace contains all core ARC classes. More...

Data Structures

class  BrokerPluginArgument
class  BrokerPlugin
class  BrokerPluginLoader
class  Broker
class  CountedBroker
class  ExecutionTargetSet
class  ClientInterface
 Utility base class for MCC. More...
class  ClientTCP
 Class for setting up a MCC chain for TCP communication. More...
struct  HTTPClientInfo
class  ClientHTTP
 Class for setting up a MCC chain for HTTP communication. More...
class  ClientSOAP
class  SecHandlerConfig
class  DNListHandlerConfig
class  ARCPolicyHandlerConfig
class  ClientHTTPwithSAML2SSO
class  ClientSOAPwithSAML2SSO
class  ClientX509Delegation
class  ComputingServiceRetriever
class  Endpoint
class  EndpointQueryingStatus
class  EndpointQueryOptions
class  EndpointQueryOptions< Endpoint >
class  EntityRetrieverPlugin
class  EntityRetrieverPluginLoader
class  EntityConsumer
class  EntityContainer
class  EntityRetriever
class  ApplicationEnvironment
 ApplicationEnvironment. More...
class  LocationAttributes
class  AdminDomainAttributes
class  ExecutionEnvironmentAttributes
class  ComputingManagerAttributes
class  ComputingShareAttributes
class  ComputingEndpointAttributes
class  ComputingServiceAttributes
class  LocationType
class  AdminDomainType
class  ExecutionEnvironmentType
class  ComputingManagerType
class  ComputingShareType
class  ComputingEndpointType
class  ComputingServiceType
class  ExecutionTarget
 ExecutionTarget. More...
class  GLUE2
 GLUE2 parser. More...
class  GLUE2Entity
class  Job
 Job. More...
class  JobControllerPlugin
class  JobControllerPluginLoader
class  JobControllerPluginPluginArgument
class  OptIn
class  Range
class  ScalableTime
class  ScalableTime< int >
class  JobIdentificationType
 Job identification. More...
class  ExecutableType
 Executable. More...
class  RemoteLoggingType
 Remote logging. More...
class  NotificationType
class  ApplicationType
class  SlotRequirementType
class  DiskSpaceRequirementType
class  ParallelEnvironmentType
class  ResourcesType
class  SourceType
class  TargetType
class  InputFileType
class  OutputFileType
class  DataStagingType
class  JobDescriptionResult
class  JobDescription
class  JobDescriptionParserResult
class  JobDescriptionParser
 Abstract class for the different parsers. More...
class  JobDescriptionParserLoader
class  JobState
class  JobSupervisor
 % JobSupervisor class More...
class  Software
 Used to represent software (names and version) and comparison. More...
class  SoftwareRequirement
 Class used to express and resolve version requirements on software. More...
class  Submitter
class  SubmitterPlugin
 Base class for the SubmitterPlugins. More...
class  SubmitterPluginLoader
class  SubmitterPluginArgument
class  BrokerPluginTestACCControl
class  JobDescriptionParserTestACCControl
class  JobControllerPluginTestACCControl
class  SubmitterPluginTestACCControl
class  JobStateTEST
class  JobListRetrieverPluginTESTControl
class  ServiceEndpointRetrieverPluginTESTControl
class  TargetInformationRetrieverPluginTESTControl
class  Config
 Configuration element - represents (sub)tree of ARC configuration. More...
class  BaseConfig
class  ArcLocation
 Determines ARC installation location. More...
class  RegularExpression
 A regular expression class. More...
class  ArcVersion
 Determines ARC HED libraries version. More...
class  Base64
class  CheckSum
 Interface for checksum manipulations. More...
class  CRC32Sum
 Implementation of CRC32 checksum. More...
class  MD5Sum
 Implementation of MD5 checksum. More...
class  Adler32Sum
 Implementation of Adler32 checksum. More...
class  CheckSumAny
 Wrapper for CheckSum class. More...
class  Counter
 A class defining a common interface for counters. More...
class  CounterTicket
 A class for "tickets" that correspond to counter reservations. More...
class  ExpirationReminder
 A class intended for internal use within counters. More...
class  Period
class  Time
 A class for storing and manipulating times. More...
class  Database
 Interface for calling database client library. More...
class  Query
class  FileAccess
 Defines interface for accessing filesystems. More...
class  FileLock
 A general file locking class. More...
class  IniConfig
class  IntraProcessCounter
 A class for counters used by threads within a single process. More...
class  PrintFBase
class  PrintF
class  IString
struct  LoggerFormat
class  LogMessage
 A class for log messages. More...
class  LogDestination
 A base class for log destinations. More...
class  LogStream
 A class for logging to ostreams. More...
class  LogFile
 A class for logging to files. More...
class  LoggerContext
 Container for logger configuration. More...
class  Logger
 A logger class. More...
class  MySQLDatabase
class  MySQLQuery
class  OptionParser
class  Profile
class  Run
class  ThreadDataItem
 Base class for per-thread object. More...
class  SimpleCondition
 Simple triggered condition. More...
class  SimpleCounter
class  TimedMutex
class  SharedMutex
class  ThreadedPointerBase
 Helper class for ThreadedPointer. More...
class  ThreadedPointer
 Wrapper for pointer with automatic destruction and mutiple references. More...
class  ThreadRegistry
class  ThreadInitializer
class  URL
 Class to hold general URLs. More...
class  URLLocation
 Class to hold a resolved URL location. More...
class  PathIterator
 Class to iterate through elements of path. More...
class  User
class  UserSwitch
class  ConfigEndpoint
class  initializeCredentialsType
 Defines how user credentials are looked for. More...
class  UserConfig
 User configuration class More...
class  CertEnvLocker
class  EnvLockWrapper
class  AutoPointer
 Wrapper for pointer with automatic destruction. More...
class  CountedPointer
 Wrapper for pointer with automatic destruction and mutiple references. More...
class  NS
class  XMLNode
 Wrapper for LibXML library Tree interface. More...
class  XMLNodeContainer
class  CredentialError
class  Credential
class  VOMSACInfo
class  VOMSTrustList
class  CredentialStore
class  XmlContainer
class  XmlDatabase
class  DelegationConsumer
class  DelegationProvider
class  DelegationConsumerSOAP
class  DelegationProviderSOAP
class  DelegationContainerSOAP
class  GlobusResult
class  GSSCredential
class  InfoCache
 Stores XML document in filesystem split into parts. More...
class  InfoCacheInterface
class  InfoFilter
 Filters information document according to identity of requestor. More...
class  InfoRegister
 Registration to ISIS interface. More...
class  InfoRegisters
 Handling multiple registrations to ISISes. More...
struct  Register_Info_Type
struct  ISIS_description
class  InfoRegistrar
 Registration process associated with particular ISIS. More...
class  InfoRegisterContainer
class  InformationInterface
 Information System message processor. More...
class  InformationContainer
 Information System document container and processor. More...
class  InformationRequest
 Request for information in InfoSystem. More...
class  InformationResponse
 Informational response from InfoSystem. More...
class  RegisteredService
 RegisteredService - extension of Service performing self-registration. More...
class  FinderLoader
class  Loader
 Plugins loader. More...
class  LoadableModuleDescription
class  ModuleManager
 Manager of shared libraries. More...
class  PluginArgument
 Base class for passing arguments to loadable ARC components. More...
class  Plugin
 Base class for loadable ARC components. More...
struct  PluginDescriptor
 Description of ARC lodable component. More...
class  PluginDesc
 Description of plugin. More...
class  ModuleDesc
 Description of loadable module. More...
class  PluginsFactory
 Generic ARC plugins loader. More...
class  MCCInterface
 Interface for communication between MCC, Service and Plexer objects. More...
class  MCC
 Message Chain Component - base class for every MCC plugin. More...
class  MCCConfig
class  MCCPluginArgument
class  MCC_Status
 A class for communication of MCC processing results. More...
class  MCCLoader
 Creator of Message Component Chains (MCC). More...
class  ChainContext
 Interface to chain specific functionality. More...
class  MessagePayload
 Base class for content of message passed through chain. More...
class  MessageContextElement
 Top class for elements contained in message context. More...
class  MessageContext
 Handler for content of message context. More...
class  MessageAuthContext
 Handler for content of message auth* context. More...
class  Message
 Object being passed through chain of MCCs. More...
class  AttributeIterator
 A const iterator class for accessing multiple values of an attribute. More...
class  MessageAttributes
 A class for storage of attribute values. More...
class  MessageAuth
 Contains authencity information, authorization tokens and decisions. More...
class  PayloadRawInterface
 Random Access Payload for Message objects. More...
struct  PayloadRawBuf
class  PayloadRaw
 Raw byte multi-buffer. More...
class  PayloadSOAP
 Payload of Message with SOAP content. More...
class  PayloadStreamInterface
 Stream-like Payload for Message object. More...
class  PayloadStream
 POSIX handle as Payload. More...
class  PlexerEntry
 A pair of label (regex) and pointer to MCC. More...
class  Plexer
 The Plexer class, used for routing messages to services. More...
class  SecAttrFormat
 Export/import format. More...
class  SecAttr
 This is an abstract interface to a security attribute. More...
class  MultiSecAttr
 Container of multiple SecAttr attributes. More...
class  Service
 Service - last component in a Message Chain. More...
class  ServicePluginArgument
class  SOAPMessage
 Message restricted to SOAP payload. More...
class  ClassLoader
class  ClassLoaderPluginArgument
class  WSAEndpointReference
 Interface for manipulation of WS-Adressing Endpoint Reference. More...
class  WSAHeader
 Interface for manipulation WS-Addressing information in SOAP header. More...
class  SAMLToken
 Class for manipulating SAML Token Profile. More...
class  UsernameToken
 Interface for manipulation of WS-Security according to Username Token Profile. More...
class  X509Token
 Class for manipulating X.509 Token Profile. More...
class  WSRP
 Base class for WS-ResourceProperties structures. More...
class  WSRPFault
 Base class for WS-ResourceProperties faults. More...
class  WSRPInvalidResourcePropertyQNameFault
class  WSRPResourcePropertyChangeFailure
class  WSRPUnableToPutResourcePropertyDocumentFault
class  WSRPInvalidModificationFault
class  WSRPUnableToModifyResourcePropertyFault
class  WSRPSetResourcePropertyRequestFailedFault
class  WSRPInsertResourcePropertiesRequestFailedFault
class  WSRPUpdateResourcePropertiesRequestFailedFault
class  WSRPDeleteResourcePropertiesRequestFailedFault
class  WSRPGetResourcePropertyDocumentRequest
class  WSRPGetResourcePropertyDocumentResponse
class  WSRPGetResourcePropertyRequest
class  WSRPGetResourcePropertyResponse
class  WSRPGetMultipleResourcePropertiesRequest
class  WSRPGetMultipleResourcePropertiesResponse
class  WSRPPutResourcePropertyDocumentRequest
class  WSRPPutResourcePropertyDocumentResponse
class  WSRPModifyResourceProperties
class  WSRPInsertResourceProperties
class  WSRPUpdateResourceProperties
class  WSRPDeleteResourceProperties
class  WSRPSetResourcePropertiesRequest
class  WSRPSetResourcePropertiesResponse
class  WSRPInsertResourcePropertiesRequest
class  WSRPInsertResourcePropertiesResponse
class  WSRPUpdateResourcePropertiesRequest
class  WSRPUpdateResourcePropertiesResponse
class  WSRPDeleteResourcePropertiesRequest
class  WSRPDeleteResourcePropertiesResponse
class  WSRPQueryResourcePropertiesRequest
class  WSRPQueryResourcePropertiesResponse
class  WSRF
 Base class for every WSRF message. More...
class  WSRFBaseFault
 Base class for WSRF fault messages. More...
class  WSRFResourceUnknownFault
class  WSRFResourceUnavailableFault
class  XMLSecNode
 Extends XMLNode class to support XML security operation. More...

Typedefs

typedef Plugin *(* get_plugin_instance )(PluginArgument *arg)
typedef std::multimap
< std::string, std::string > 
AttrMap
typedef AttrMap::const_iterator AttrConstIter
typedef AttrMap::iterator AttrIter

Enumerations

enum  TimeFormat
enum  LogLevel
enum  LogFormat
enum  escape_type { , escape_octal, escape_hex }
enum  StatusKind { ,
  STATUS_OK = 1, GENERIC_ERROR = 2, PARSING_ERROR = 4, PROTOCOL_RECOGNIZED_ERROR = 8,
  UNKNOWN_SERVICE_ERROR = 16, BUSY_ERROR = 32, SESSION_CLOSE = 64
}
enum  WSAFault { , WSAFaultUnknown, WSAFaultInvalidAddressingHeader }

Functions

std::ostream & operator<< (std::ostream &, const Period &)
std::ostream & operator<< (std::ostream &, const Time &)
std::string TimeStamp (const TimeFormat &=Time::GetFormat())
std::string TimeStamp (Time, const TimeFormat &=Time::GetFormat())
bool FileCopy (const std::string &source_path, const std::string &destination_path, uid_t uid, gid_t gid)
bool FileCopy (const std::string &source_path, const std::string &destination_path)
bool FileCopy (const std::string &source_path, int destination_handle)
bool FileCopy (int source_handle, const std::string &destination_path)
bool FileCopy (int source_handle, int destination_handle)
bool FileRead (const std::string &filename, std::list< std::string > &data, uid_t uid=0, gid_t gid=0)
bool FileRead (const std::string &filename, std::string &data, uid_t uid=0, gid_t gid=0)
bool FileCreate (const std::string &filename, const std::string &data, uid_t uid=0, gid_t gid=0, mode_t mode=0)
bool FileStat (const std::string &path, struct stat *st, bool follow_symlinks)
bool FileStat (const std::string &path, struct stat *st, uid_t uid, gid_t gid, bool follow_symlinks)
bool FileLink (const std::string &oldpath, const std::string &newpath, bool symbolic)
bool FileLink (const std::string &oldpath, const std::string &newpath, uid_t uid, gid_t gid, bool symbolic)
std::string FileReadLink (const std::string &path)
std::string FileReadLink (const std::string &path, uid_t uid, gid_t gid)
bool FileDelete (const std::string &path)
bool FileDelete (const std::string &path, uid_t uid, gid_t gid)
bool DirCreate (const std::string &path, mode_t mode, bool with_parents=false)
bool DirCreate (const std::string &path, uid_t uid, gid_t gid, mode_t mode, bool with_parents=false)
bool DirDelete (const std::string &path, bool recursive=true)
bool DirDelete (const std::string &path, bool recursive, uid_t uid, gid_t gid)
bool TmpDirCreate (std::string &path)
bool TmpFileCreate (std::string &filename, const std::string &data, uid_t uid=0, gid_t gid=0, mode_t mode=0)
bool CanonicalDir (std::string &name, bool leading_slash=true)
void GUID (std::string &guid)
std::string UUID (void)
std::ostream & operator<< (std::ostream &os, LogLevel level)
LogLevel string_to_level (const std::string &str)
bool istring_to_level (const std::string &llStr, LogLevel &ll)
bool string_to_level (const std::string &str, LogLevel &ll)
std::string level_to_string (const LogLevel &level)
LogLevel old_level_to_level (unsigned int old_level)
template<typename T >
stringto (const std::string &s)
template<typename T >
bool stringto (const std::string &s, T &t)
bool strtoint (const std::string &s, signed int &t, int base=10)
bool strtoint (const std::string &s, unsigned int &t, int base=10)
bool strtoint (const std::string &s, signed long &t, int base=10)
bool strtoint (const std::string &s, unsigned long &t, int base=10)
bool strtoint (const std::string &s, signed long long &t, int base=10)
bool strtoint (const std::string &s, unsigned long long &t, int base=10)
template<typename T >
std::string tostring (T t, int width=0, int precision=0)
std::string inttostr (signed long long t, int base=10, int width=0)
std::string inttostr (unsigned long long t, int base=10, int width=0)
std::string inttostr (signed int t, int base=10, int width=0)
std::string inttostr (unsigned int t, int base=10, int width=0)
std::string inttostr (signed long t, int base=10, int width=0)
std::string inttostr (unsigned long t, int base=10, int width=0)
std::string booltostr (bool b)
bool strtobool (const std::string &s)
bool strtobool (const std::string &s, bool &b)
std::string lower (const std::string &s)
std::string upper (const std::string &s)
void tokenize (const std::string &str, std::vector< std::string > &tokens, const std::string &delimiters=" ", const std::string &start_quotes="", const std::string &end_quotes="")
void tokenize (const std::string &str, std::list< std::string > &tokens, const std::string &delimiters=" ", const std::string &start_quotes="", const std::string &end_quotes="")
std::string::size_type get_token (std::string &token, const std::string &str, std::string::size_type pos, const std::string &delimiters=" ", const std::string &start_quotes="", const std::string &end_quotes="")
std::string trim (const std::string &str, const char *sep=NULL)
std::string strip (const std::string &str)
std::string uri_encode (const std::string &str, bool encode_slash)
std::string uri_unencode (const std::string &str)
std::string convert_to_rdn (const std::string &dn)
std::string escape_chars (const std::string &str, const std::string &chars, char esc, bool excl, escape_type type=escape_char)
std::string unescape_chars (const std::string &str, char esc, escape_type type=escape_char)
bool CreateThreadFunction (void(*func)(void *), void *arg, SimpleCounter *count=NULL)
std::list< URLReadURLList (const URL &urllist)
std::string GetEnv (const std::string &var)
std::string GetEnv (const std::string &var, bool &found)
bool SetEnv (const std::string &var, const std::string &value, bool overwrite=true)
void UnsetEnv (const std::string &var)
void EnvLockWrap (bool all=false)
void EnvLockUnwrap (bool all=false)
void EnvLockUnwrapComplete (void)
std::string StrError (int errnum=errno)
bool MatchXMLName (const XMLNode &node1, const XMLNode &node2)
bool MatchXMLName (const XMLNode &node, const char *name)
bool MatchXMLName (const XMLNode &node, const std::string &name)
bool MatchXMLNamespace (const XMLNode &node1, const XMLNode &node2)
bool MatchXMLNamespace (const XMLNode &node, const char *uri)
bool MatchXMLNamespace (const XMLNode &node, const std::string &uri)
bool createVOMSAC (std::string &codedac, Credential &issuer_cred, Credential &holder_cred, std::vector< std::string > &fqan, std::vector< std::string > &targets, std::vector< std::string > &attributes, std::string &voname, std::string &uri, int lifetime)
bool addVOMSAC (ArcCredential::AC **&aclist, std::string &acorder, std::string &decodedac)
bool parseVOMSAC (X509 *holder, const std::string &ca_cert_dir, const std::string &ca_cert_file, const std::string &vomsdir, VOMSTrustList &vomscert_trust_dn, std::vector< VOMSACInfo > &output, bool verify=true, bool reportall=false)
bool parseVOMSAC (const Credential &holder_cred, const std::string &ca_cert_dir, const std::string &ca_cert_file, const std::string &vomsdir, VOMSTrustList &vomscert_trust_dn, std::vector< VOMSACInfo > &output, bool verify=true, bool reportall=false)
char * VOMSDecode (const char *data, int size, int *j)
std::string getCredentialProperty (const Arc::Credential &u, const std::string &property, const std::string &ca_cert_dir=std::string(""), const std::string &ca_cert_file=std::string(""), const std::string &vomsdir=std::string(""), const std::vector< std::string > &voms_trust_list=std::vector< std::string >())
bool OpenSSLInit (void)
void HandleOpenSSLError (void)
void HandleOpenSSLError (int code)
std::string string (StatusKind kind)
const char * ContentFromPayload (const MessagePayload &payload)
void WSAFaultAssign (SOAPEnvelope &mesage, WSAFault fid)
WSAFault WSAFaultExtract (SOAPEnvelope &message)
int passphrase_callback (char *buf, int size, int rwflag, void *)
bool init_xmlsec (void)
bool final_xmlsec (void)
std::string get_cert_str (const char *certfile)
xmlSecKey * get_key_from_keystr (const std::string &value)
xmlSecKey * get_key_from_keyfile (const char *keyfile)
std::string get_key_from_certfile (const char *certfile)
xmlSecKey * get_key_from_certstr (const std::string &value)
xmlSecKeysMngrPtr load_key_from_keyfile (xmlSecKeysMngrPtr *keys_manager, const char *keyfile)
xmlSecKeysMngrPtr load_key_from_certfile (xmlSecKeysMngrPtr *keys_manager, const char *certfile)
xmlSecKeysMngrPtr load_key_from_certstr (xmlSecKeysMngrPtr *keys_manager, const std::string &certstr)
xmlSecKeysMngrPtr load_trusted_cert_file (xmlSecKeysMngrPtr *keys_manager, const char *cert_file)
xmlSecKeysMngrPtr load_trusted_cert_str (xmlSecKeysMngrPtr *keys_manager, const std::string &cert_str)
xmlSecKeysMngrPtr load_trusted_certs (xmlSecKeysMngrPtr *keys_manager, const char *cafile, const char *capath)
XMLNode get_node (XMLNode &parent, const char *name)

Variables

const Glib::TimeVal ETERNAL
const Glib::TimeVal HISTORIC
const size_t thread_stacksize = (16 * 1024 * 1024)
Logger CredentialLogger
const char * plugins_table_name

Detailed Description

Arc namespace contains all core ARC classes.


Typedef Documentation

typedef AttrMap::const_iterator Arc::AttrConstIter

A typedef of a const_iterator for AttrMap.

This typedef is used as a shorthand for a const_iterator for AttrMap. It is used extensively within the MessageAttributes class as well as the AttributesIterator class, but is not visible externally.

typedef AttrMap::iterator Arc::AttrIter

A typedef of an (non-const) iterator for AttrMap.

This typedef is used as a shorthand for a (non-const) iterator for AttrMap. It is used in one method within the MessageAttributes class, but is not visible externally.

typedef std::multimap<std::string,std::string> Arc::AttrMap

A typefed of a multimap for storage of message attributes.

This typedef is used as a shorthand for a multimap that uses strings for keys as well as values. It is used within the MesssageAttributes class for internal storage of message attributes, but is not visible externally.

Constructor function of ARC lodable component.

This function is called with plugin-specific argument and should produce and return valid instance of plugin. If plugin can't be produced by any reason (for example because passed argument is not applicable) then NULL is returned. No exceptions should be raised.


Enumeration Type Documentation

Type of escaping or encoding to use.

Enumerator:
escape_octal 

place the escape character before the character being escaped

escape_hex 

octal encoding of the character

hex encoding of the character

Output formats.

Defines prefix for every message. LongFormat - all informatino about message is printed ShortFormat - only message level is printed DebugFormat - message time (microsecond precision) and time difference from previous message are printed. This format is mostly meant for profiling. EmptyFormat - only message is printed

Logging levels.

Logging levels for tagging and filtering log messages. FATAL level designates very severe error events that will presumably lead the application to abort. ERROR level designates error events that might still allow the application to continue running. WARNING level designates potentially harmful situations. INFO level designates informational messages that highlight the progress of the application at coarse-grained level. VERBOSE level designates fine-grained informational events that will give additional information about the application. DEBUG level designates finer-grained informational events which should only be used for debugging purposes.

Status kinds (types).

This enum defines a set of possible status kinds.

Enumerator:
STATUS_OK 

Default status - undefined error.

GENERIC_ERROR 

No error.

PARSING_ERROR 

Error does not fit any class.

PROTOCOL_RECOGNIZED_ERROR 

Error detected while parsing request/response.

UNKNOWN_SERVICE_ERROR 

Message does not fit into expected protocol.

BUSY_ERROR 

There is no destination configured for this message.

SESSION_CLOSE 

Message can't be processed now.

WS-Addressing possible faults.

Enumerator:
WSAFaultUnknown 

This is not a fault

WSAFaultInvalidAddressingHeader 

This is not a WS-Addressing fault


Function Documentation

bool Arc::addVOMSAC ( ArcCredential::AC **&  aclist,
std::string &  acorder,
std::string &  decodedac 
)

Add decoded AC string into a list of AC objects

Parameters:
aclist The list of AC objects (output)
acorder The order of AC objects (output)
decodedac The AC string that is decoded from the string returned from voms server (input)
bool Arc::CanonicalDir ( std::string &  name,
bool  leading_slash = true 
)

Removes /../ from 'name'. If leading_slash=true '/' will be added at the beginning of 'name' if missing. Otherwise it will be removed. The directory separator used here depends on the platform. Returns false if it is not possible to remove all the ../

const char* Arc::ContentFromPayload ( const MessagePayload &  payload  ) 

Returns pointer to main memory chunk of Message payload.

If no buffer is present or if payload is not of PayloadRawInterface type NULL is returned.

bool Arc::CreateThreadFunction ( void(*)(void *)  func,
void *  arg,
SimpleCounter *  count = NULL 
)

This macro behaves like function which makes thread of class' method.

It accepts class instance and full name of method - like class::method. 'method' should not be static member of the class. Result is true if creation of thread succeeded. Specified instance must be valid during whole lifetime of thread. So probably it is safer to destroy 'instance' in 'method' just before exiting. Helper function to create simple thread. It takes care of all pecularities of Glib::Thread API. As result it runs function 'func' with argument 'arg' in a separate thread. If count parameter not NULL then corresponding object will be incremented before function returns and then decremented then thread finished. Returns true on success.

bool Arc::createVOMSAC ( std::string &  codedac,
Credential &  issuer_cred,
Credential &  holder_cred,
std::vector< std::string > &  fqan,
std::vector< std::string > &  targets,
std::vector< std::string > &  attributes,
std::string &  voname,
std::string &  uri,
int  lifetime 
)

Create AC(Attribute Certificate) with voms specific format.

Parameters:
codedac The coded AC as output of this method
issuer_cred The issuer credential which is used to sign the AC
holder_cred The holder credential, the holder certificate is the one which carries AC The rest arguments are the same as the above method
bool Arc::DirCreate ( const std::string &  path,
uid_t  uid,
gid_t  gid,
mode_t  mode,
bool  with_parents = false 
)

Create a new directory using the specified uid and gid Specified uid and gid are used for accessing filesystem.

bool Arc::DirDelete ( const std::string &  path,
bool  recursive,
uid_t  uid,
gid_t  gid 
)

Delete a directory, and its content if recursive is true. If the directory is not empty and recursive is false DirDelete will fail. Specified uid and gid are used for accessing filesystem.

bool Arc::DirDelete ( const std::string &  path,
bool  recursive = true 
)

Delete a directory, and its content if recursive is true. If the directory is not empty and recursive is false DirDelete will fail.

void Arc::EnvLockUnwrap ( bool  all = false  ) 

End code which is using setenv/getenv. Value of all must be same as in corresponding EnvLockWrap.

void Arc::EnvLockWrap ( bool  all = false  ) 

Start code which is using setenv/getenv. Use all=true for setenv and all=false for getenv. Must always have corresponding EnvLockUnwrap.

std::string Arc::escape_chars ( const std::string &  str,
const std::string &  chars,
char  esc,
bool  excl,
escape_type  type = escape_char 
)

Escape or encode the given chars in str using the escape character esc. If excl is true then escape all characters not in chars

bool Arc::FileCopy ( const std::string &  source_path,
const std::string &  destination_path,
uid_t  uid,
gid_t  gid 
)

Utility functions for handling files and directories. Those functions offer posibility to access files and directories under user and group ids different from those of current user. Id switching is done in way safe for muti-threaded application. If any of specified ids is 0 then such id is not switched and current id is used instead. Copy file source_path to file destination_path. Specified uid and gid are used for accessing filesystem.

bool Arc::FileCreate ( const std::string &  filename,
const std::string &  data,
uid_t  uid = 0,
gid_t  gid = 0,
mode_t  mode = 0 
)

Simple method to create a new file containing given data. Specified uid and gid are used for accessing filesystem. An existing file is overwritten with the new data. Permissions of the created file are determined using the current umask. If protected access is required, FileLock should be used in addition to FileRead. If uid/gid are zero then no real switch of uid/gid is done.

bool Arc::FileDelete ( const std::string &  path,
uid_t  uid,
gid_t  gid 
)

Deletes file at path using the specified uid and gid Specified uid and gid are used for accessing filesystem.

bool Arc::FileLink ( const std::string &  oldpath,
const std::string &  newpath,
uid_t  uid,
gid_t  gid,
bool  symbolic 
)

Make symbolic or hard link of file using the specified uid and gid Specified uid and gid are used for accessing filesystem.

bool Arc::FileRead ( const std::string &  filename,
std::string &  data,
uid_t  uid = 0,
gid_t  gid = 0 
)

Simple method to read whole file content from filename. Specified uid and gid are used for accessing filesystem.

bool Arc::FileRead ( const std::string &  filename,
std::list< std::string > &  data,
uid_t  uid = 0,
gid_t  gid = 0 
)

Simple method to read file content from filename. Specified uid and gid are used for accessing filesystem. The content is split into lines with the new line character removed, and the lines are returned in the data list. If protected access is required, FileLock should be used in addition to FileRead.

std::string Arc::FileReadLink ( const std::string &  path,
uid_t  uid,
gid_t  gid 
)

Returns path at which symbolic link is pointing using the specified uid and gid Specified uid and gid are used for accessing filesystem.

bool Arc::FileStat ( const std::string &  path,
struct stat *  st,
uid_t  uid,
gid_t  gid,
bool  follow_symlinks 
)

Stat a file using the specified uid and gid and put info into the st struct Specified uid and gid are used for accessing filesystem.

bool Arc::final_xmlsec ( void   ) 

Finalize the xml security library

std::string Arc::get_cert_str ( const char *  certfile  ) 

Get certificate in string format from certificate file

std::string Arc::get_key_from_certfile ( const char *  certfile  ) 

Get public key in string format from certificate file

xmlSecKey* Arc::get_key_from_certstr ( const std::string &  value  ) 

Get public key in xmlSecKey structure from certificate string (the string under "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----")

xmlSecKey* Arc::get_key_from_keyfile ( const char *  keyfile  ) 

Get key in xmlSecKey structure from key file

xmlSecKey* Arc::get_key_from_keystr ( const std::string &  value  ) 

Get key in xmlSecKey structure from key in string format

XMLNode Arc::get_node ( XMLNode &  parent,
const char *  name 
)

Generate a new child XMLNode with specified name

std::string Arc::getCredentialProperty ( const Arc::Credential u,
const std::string &  property,
const std::string &  ca_cert_dir = std::string(""),
const std::string &  ca_cert_file = std::string(""),
const std::string &  vomsdir = std::string(""),
const std::vector< std::string > &  voms_trust_list = std::vector< std::string >() 
)

Extract the needed field from the certificate.

Parameters:
u The proxy certificate which includes the voms specific formated AC.
property The property that caller would get, including: dn, voms:vo, voms:role, voms:group
ca_cert_dir 
ca_cert_file 
vomsdir 
voms_trust_list the dn chain that is trusted when parsing voms AC
void Arc::GUID ( std::string &  guid  ) 

Utilities for generating unique identifiers in the form 12345678-90ab-cdef-1234-567890abcdef.

Generates a unique identifier using information such as IP address, current time etc.

bool Arc::init_xmlsec ( void   ) 

Initialize the xml security library, it should be called before the xml security functionality is used.

std::string Arc::inttostr ( unsigned long  t,
int  base = 10,
int  width = 0 
) [inline]

Convert unsigned long integer to textual representation for specied base. Result is padded with zeroes on left till width.

References inttostr().

std::string Arc::inttostr ( signed long  t,
int  base = 10,
int  width = 0 
) [inline]

Convert long integer to textual representation for specied base. Result is padded with zeroes on left till width.

References inttostr().

std::string Arc::inttostr ( unsigned int  t,
int  base = 10,
int  width = 0 
) [inline]

Convert unsigned integer to textual representation for specied base. Result is padded with zeroes on left till width.

References inttostr().

std::string Arc::inttostr ( signed int  t,
int  base = 10,
int  width = 0 
) [inline]

Convert integer to textual representation for specied base. Result is padded with zeroes on left till width.

References inttostr().

std::string Arc::inttostr ( unsigned long long  t,
int  base = 10,
int  width = 0 
)

Convert unsigned long long integer to textual representation for specied base. Result is padded with zeroes on left till width.

std::string Arc::inttostr ( signed long long  t,
int  base = 10,
int  width = 0 
)

Convert long long integer to textual representation for specied base. Result is padded with zeroes on left till width.

Referenced by inttostr().

bool Arc::istring_to_level ( const std::string &  llStr,
LogLevel &  ll 
)

Case-insensitive parsing of a string to a LogLevel with error response.

The method will try to parse (case-insensitive) the argument string to a corresponding LogLevel. If the method suceeds, true will be returned and the argument ll will be set to the parsed LogLevel. If the parsing fails false will be returned. The parsing succeeds if llStr match (case-insensitively) one of the names of the LogLevel members.

Parameters:
llStr a string which should be parsed to a Arc::LogLevel.
ll a Arc::LogLevel reference which will be set to the matching Arc::LogLevel upon successful parsing.
Returns:
true in case of successful parsing, otherwise false.
See also:
LogLevel
xmlSecKeysMngrPtr Arc::load_key_from_certfile ( xmlSecKeysMngrPtr *  keys_manager,
const char *  certfile 
)

Load public key from a certificate file into key manager

xmlSecKeysMngrPtr Arc::load_key_from_certstr ( xmlSecKeysMngrPtr *  keys_manager,
const std::string &  certstr 
)

Load public key from a certificate string into key manager

xmlSecKeysMngrPtr Arc::load_key_from_keyfile ( xmlSecKeysMngrPtr *  keys_manager,
const char *  keyfile 
)

Load private or public key from a key file into key manager

xmlSecKeysMngrPtr Arc::load_trusted_cert_file ( xmlSecKeysMngrPtr *  keys_manager,
const char *  cert_file 
)

Load trusted certificate from certificate file into key manager

xmlSecKeysMngrPtr Arc::load_trusted_cert_str ( xmlSecKeysMngrPtr *  keys_manager,
const std::string &  cert_str 
)

Load trusted certificate from cetrtificate string into key manager

xmlSecKeysMngrPtr Arc::load_trusted_certs ( xmlSecKeysMngrPtr *  keys_manager,
const char *  cafile,
const char *  capath 
)

Load trusted cetificates from a file or directory into key manager

bool Arc::MatchXMLName ( const XMLNode &  node,
const std::string &  name 
)

Returns true if 'name' matches name of 'node'. If name contains prefix it's checked too

bool Arc::MatchXMLName ( const XMLNode &  node,
const char *  name 
)

Returns true if 'name' matches name of 'node'. If name contains prefix it's checked too

bool Arc::MatchXMLName ( const XMLNode &  node1,
const XMLNode &  node2 
)

Returns true if underlying XML elements have same names

bool Arc::MatchXMLNamespace ( const XMLNode &  node,
const std::string &  uri 
)

Returns true if 'namespace' matches 'node's namespace.

bool Arc::MatchXMLNamespace ( const XMLNode &  node,
const char *  uri 
)

Returns true if 'namespace' matches 'node's namespace.

bool Arc::MatchXMLNamespace ( const XMLNode &  node1,
const XMLNode &  node2 
)

Returns true if underlying XML elements belong to same namespaces

bool Arc::OpenSSLInit ( void   ) 

This module contains various convenience utilities for using OpenSSL.

Application may be linked to this module instead of OpenSSL libraries directly. This function initializes OpenSSL library. It may be called multiple times and makes sure everything is done properly and OpenSSL may be used in multi-threaded environment. Because this function makes use of ArcLocation it is advisable to call it after ArcLocation::Init().

std::ostream& Arc::operator<< ( std::ostream &  os,
LogLevel  level 
)

Printing of LogLevel values to ostreams.

Output operator so that LogLevel values can be printed in a nicer way.

std::ostream& Arc::operator<< ( std::ostream &  ,
const Time &   
)

Prints a Time-object to the given ostream -- typically cout.

std::ostream& Arc::operator<< ( std::ostream &  ,
const Period &   
)

Prints a Period-object to the given ostream -- typically cout.

bool Arc::parseVOMSAC ( const Credential &  holder_cred,
const std::string &  ca_cert_dir,
const std::string &  ca_cert_file,
const std::string &  vomsdir,
VOMSTrustList &  vomscert_trust_dn,
std::vector< VOMSACInfo > &  output,
bool  verify = true,
bool  reportall = false 
)

Parse the certificate. Similar to above one, but collects information From all certificates in a chain.

bool Arc::parseVOMSAC ( X509 *  holder,
const std::string &  ca_cert_dir,
const std::string &  ca_cert_file,
const std::string &  vomsdir,
VOMSTrustList &  vomscert_trust_dn,
std::vector< VOMSACInfo > &  output,
bool  verify = true,
bool  reportall = false 
)

Parse the certificate, and output the attributes.

Parameters:
holder The proxy certificate which includes the voms specific formated AC.
ca_cert_dir The trusted certificates which are used to verify the certificate which is used to sign the AC
ca_cert_file The same as ca_cert_dir except it is a file instead of a directory. Only one of them need to be set
vomsdir The directory which include *.lsc file for each vo. For instance, a vo called "knowarc.eu" should have file vomsdir/knowarc/voms.knowarc.eu.lsc which contains on the first line the DN of the VOMS server, and on the second line the corresponding CA DN: /O=Grid/O=NorduGrid/OU=KnowARC/CN=voms.knowarc.eu /O=Grid/O=NorduGrid/CN=NorduGrid Certification Authority See more in : https://twiki.cern.ch/twiki/bin/view/LCG/VomsFAQforServiceManagers
output The parsed attributes (Role and Generic Attribute) . Each attribute is stored in element of a vector as a string. It is up to the consumer to understand the meaning of the attribute. There are two types of attributes stored in VOMS AC: AC_IETFATTR, AC_FULL_ATTRIBUTES. The AC_IETFATTR will be like /Role=Employee/Group=Tester/Capability=NULL The AC_FULL_ATTRIBUTES will be like knowarc:Degree=PhD (qualifier::name=value) In order to make the output attribute values be identical, the voms server information is added as prefix of the original attributes in AC. for AC_FULL_ATTRIBUTES, the voname + hostname is added: /voname=knowarc.eu/hostname=arthur.hep.lu.se:15001//knowarc.eu/coredev:attribute1=1 for AC_IETFATTR, the 'VO' (voname) is added: /VO=knowarc.eu/Group=coredev/Role=NULL/Capability=NULL /VO=knowarc.eu/Group=testers/Role=NULL/Capability=NULL

some other redundant attributes is provided: voname=knowarc.eu/hostname=arthur.hep.lu.se:15001

Parameters:
verify true: Verify the voms certificate is trusted based on the ca_cert_dir/ca_cert_file which specifies the CA certificates, and the vomscert_trust_dn which specifies the trusted DN chain from voms server certificate to CA certificate. false: Not verify, which means the issuer of AC (voms server certificate is supposed to be trusted by default). In this case the parameters 'ca_cert_dir', 'ca_cert_file' and 'vomscert_trust_dn' will not effect, and may be left empty. This case is specifically used by 'arcproxy --info' to list all of the attributes in AC, and not to need to verify if the AC's issuer is trusted.
reportall If set to true fills output with all attributes including those which failed passing test procedures. Validity of attributes can be checked through status members of output items. Combination of verify=true and reportall=true provides most information.
int Arc::passphrase_callback ( char *  buf,
int  size,
int  rwflag,
void *   
)

callback method for inputing passphrase of key file

std::string Arc::string ( StatusKind  kind  ) 

Conversion to string.

Conversion from StatusKind to string.

Parameters:
kind The StatusKind to convert.
bool Arc::strtobool ( const std::string &  s,
bool &  b 
) [inline]

Convert string to bool Checks whether string is equal to one of "true", "false", "1" or "0", and if not returns false. If equal, true is returned and the bool reference is set to true, if string equals "true" or "1", otherwise it is set to false.

bool Arc::strtobool ( const std::string &  s  )  [inline]

Convert string to bool. Simply checks string if equal to "true" or "1".

bool Arc::strtoint ( const std::string &  s,
unsigned long long &  t,
int  base = 10 
)

Convert string to unsigned long long integer with specified base. Returns false if any argument is wrong.

bool Arc::strtoint ( const std::string &  s,
signed long long &  t,
int  base = 10 
)

Convert string to long long integer with specified base. Returns false if any argument is wrong.

bool Arc::strtoint ( const std::string &  s,
unsigned long &  t,
int  base = 10 
)

Convert string to unsigned long integer with specified base. Returns false if any argument is wrong.

bool Arc::strtoint ( const std::string &  s,
signed long &  t,
int  base = 10 
)

Convert string to long integer with specified base. Returns false if any argument is wrong.

bool Arc::strtoint ( const std::string &  s,
unsigned int &  t,
int  base = 10 
)

Convert string to unsigned integer with specified base. Returns false if any argument is wrong.

bool Arc::strtoint ( const std::string &  s,
signed int &  t,
int  base = 10 
)

Convert string to integer with specified base. Returns false if any argument is wrong.

std::string Arc::TimeStamp ( Time  ,
const TimeFormat &  = Time::GetFormat() 
)

Returns a time-stamp of some specified time in some format.

std::string Arc::TimeStamp ( const TimeFormat &  = Time::GetFormat()  ) 

Returns a time-stamp of the current time in some format.

bool Arc::TmpDirCreate ( std::string &  path  ) 

Create a temporary directory under the system defined temp location, and return its path.

Uses mkdtemp if available, and a combination of random parameters if not. This latter method is not as safe as mkdtemp.

bool Arc::TmpFileCreate ( std::string &  filename,
const std::string &  data,
uid_t  uid = 0,
gid_t  gid = 0,
mode_t  mode = 0 
)

Simple method to create a temporary file containing given data. Specified uid and gid are used for accessing filesystem. Permissions of the created file are determined using the current umask. If uid/gid are zero then no real switch of uid/gid is done. Input value of filename argument is ignored. On output it contains path to created file. Content of data argument is written into created file.

std::string Arc::uri_encode ( const std::string &  str,
bool  encode_slash 
)

This method -encodes characters in URI str.

Characters which are not unreserved according to RFC 3986 are encoded. If encode_slash is true forward slashes will also be encoded. It is useful to set encode_slash to false when encoding full paths. be encoded

char* Arc::VOMSDecode ( const char *  data,
int  size,
int *  j 
)

Decode the data which is encoded by voms server. Since voms code uses some specific coding method (not base64 encoding), we simply copy the method from voms code to here

void Arc::WSAFaultAssign ( SOAPEnvelope &  mesage,
WSAFault  fid 
)

Makes WS-Addressing fault.

It fills SOAP Fault message with WS-Addressing fault related information.

WSAFault Arc::WSAFaultExtract ( SOAPEnvelope &  message  ) 

Gets WS-addressing fault.

Analyzes SOAP Fault message and returns WS-Addressing fault it represents.


Variable Documentation

Logger to be used by all modules of credentials library

Name of symbol refering to table of plugins.

This C null terminated string specifies name of symbol which shared library should export to give an access to an array of PluginDescriptor elements. The array is terminated by element with all components set to NULL.

const size_t Arc::thread_stacksize = (16 * 1024 * 1024)

This module provides convenient helpers for Glibmm interface for thread management.

So far it takes care of automatic initialization of threading environment and creation of simple detached threads. Always use it instead of glibmm/thread.h and keep among first includes. It safe to use it multiple times and to include it both from source files and other include files. Defines size of stack assigned to every new thread.

Generated on Wed Jun 27 11:54:15 2012 for Hosting Environment (Daemon) by  doxygen 1.6.3