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 > | |
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< URL > | ReadURLList (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 |
Arc namespace contains all core ARC classes.
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.
typedef Plugin*(* Arc::get_plugin_instance)(PluginArgument *arg) |
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.
enum Arc::escape_type |
enum Arc::LogFormat |
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
enum Arc::LogLevel |
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.
enum Arc::StatusKind |
Status kinds (types).
This enum defines a set of possible status kinds.
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. |
enum Arc::WSAFault |
bool Arc::addVOMSAC | ( | ArcCredential::AC **& | aclist, | |
std::string & | acorder, | |||
std::string & | decodedac | |||
) |
Add decoded AC string into a list of AC objects
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.
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.
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.
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. |
true
in case of successful parsing, otherwise false
. 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.
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
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.
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.
Logger to be used by all modules of credentials library
const char* Arc::plugins_table_name |
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.