/usr/include/arc/ArcConfig.h is in nordugrid-arc-dev 4.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | // -*- indent-tabs-mode: nil -*-
#ifndef __ARC_CONFIG_H__
#define __ARC_CONFIG_H__
#include <string>
#include <list>
#include <arc/XMLNode.h>
namespace Arc {
/// Configuration element - represents (sub)tree of ARC XML configuration.
/** This class is intended to be used to pass configuration details to
various parts of HED and external modules. Currently it's just a
wrapper over XML tree. But that may change in the future, although the
interface should be preserved.
Currently it is capable of loading an XML configuration document from a
file. In future it will be capable of loading a more user-readable
format and processing it into a tree-like structure convenient for
machine processing (XML-like).
So far there are no schema and/or namespaces assigned.
\ingroup common
\headerfile ArcConfig.h arc/ArcConfig.h
*/
class Config
: public XMLNode {
private:
std::string file_name_;
public:
/// Creates empty XML tree
Config() : XMLNode(NS(), "ArcConfig") {}
/// Creates an empty configuration object with the given namespace
Config(const NS& ns)
: XMLNode(ns, "ArcConfig") {}
/// Loads configuration document from file at filename
Config(const char *filename);
/// Parse configuration document from string
Config(const std::string& xml_str)
: XMLNode(xml_str) {}
/// Acquire existing XML (sub)tree.
/** Content is not copied. Make sure XML tree is not destroyed
while in use by this object. */
Config(XMLNode xml)
: XMLNode(xml) {}
/// Acquire existing XML (sub)tree and set config file.
/** Content is not copied. Make sure XML tree is not destroyed
while in use by this object. */
Config(XMLNode xml, const std::string& filename)
: XMLNode(xml) {
file_name_ = filename;
}
~Config(void);
/// Copy constructor used by language bindings
Config(long cfg_ptr_addr);
/// Copy constructor used by language bindings
Config(const Config& cfg);
/// Print structure of document for debugging purposes.
/** Printed content is not an XML document. */
void print(void);
/// Parse configuration document from file at filename
bool parse(const char *filename);
/// Returns file name of config file or empty string if it was generated from the XMLNode subtree
const std::string& getFileName(void) const {
return file_name_;
}
/// Set the file name of config file
void setFileName(const std::string& filename) {
file_name_ = filename;
}
/// Save config to file
void save(const char *filename);
};
/// Configuration for client interface.
/** It contains information which can't be expressed in
class constructor arguments. Most probably common things
like software installation location, identity of user, etc.
\ingroup common
\headerfile ArcConfig.h arc/ArcConfig.h */
class BaseConfig {
protected:
/// List of file system paths to ARC plugin files
std::list<std::string> plugin_paths;
public:
/// Credential stored as string
/**
* \since Added in 4.0.0.
**/
std::string credential;
/// Path to private key
std::string key;
/// Path to certificate
std::string cert;
/// Path to proxy certificate
std::string proxy;
/// Path to CA certificate
std::string cafile;
/// Path to directory of CA certificates
std::string cadir;
/// Configuration overlay
XMLNode overlay;
/// Construct new BaseConfig. Plugin paths are determined automatically.
BaseConfig();
virtual ~BaseConfig() {}
/// Adds non-standard location of plugins
void AddPluginsPath(const std::string& path);
/// Add credential string
/**
* \since Added in 4.0.0.
**/
void AddCredential(const std::string& cred);
/// Add private key
void AddPrivateKey(const std::string& path);
/// Add certificate
void AddCertificate(const std::string& path);
/// Add credentials proxy
void AddProxy(const std::string& path);
/// Add CA file
void AddCAFile(const std::string& path);
/// Add CA directory
void AddCADir(const std::string& path);
/// Add configuration overlay
void AddOverlay(XMLNode cfg);
/// Read overlay from file
void GetOverlay(std::string fname);
/// Adds plugin configuration into common configuration tree supplied in 'cfg' argument.
/** \return reference to XML node representing configuration of
ModuleManager */
virtual XMLNode MakeConfig(XMLNode cfg) const;
};
} // namespace Arc
#endif /* __ARC_CONFIG_H__ */
|