Dakota  Version
Explore and Predict with Confidence
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
TrackerHTTP Class Reference

TrackerHTTP: a usage tracking module that uses HTTP/HTTPS via the curl library. More...

Classes

struct  Server
 struct to hold tracker/proxy pairs More...
 

Public Member Functions

 TrackerHTTP ()
 default constructor is allowed, but doesn't generate output
 
 TrackerHTTP (int world_rank=0)
 standard constructor with ProblemDescDB, rank
 
 ~TrackerHTTP ()
 destructor to free handles
 
void post_start (ProblemDescDB &problem_db)
 post the start of an analysis and archive start time
 
void post_finish (unsigned runtime=0)
 post the completion of an analysis including elapsed time
 

Private Member Functions

void initialize (int world_rank=0)
 shared initialization functions across constructors
 
void url_add_field (std::string &url, const char *keyword, const std::string &value, bool delimit=true) const
 append keyword/value pair to url in GET style (with &keyword=value); set delimit = false to omit the &
 
void build_default_data (std::string &url, std::time_t &rawtime, const std::string &mode) const
 construct URL with shared information for start/finish
 
void send_data_using_get (const std::string &urltopost) const
 transmit data to the web server using GET More...
 
void send_data_using_post (const std::string &datatopost)
 POST separate location and query; datatopost="name=daniel&project=curl". More...
 
void split_string (const std::string &s, const char &delim, std::vector< std::string > &elems)
 Split a string on a delimiter and place tokens in elems.
 
void parse_tracking_string (const std::string &dt)
 Populate serverList with tracker and proxy URLs from dt.
 
void populate_method_list (ProblemDescDB &problem_db)
 extract list of methods from problem database
 
std::string get_uid () const
 get the real user ID
 
std::string get_username () const
 get the username as reported by the environment
 
std::string get_hostname () const
 get the system hostname
 
std::string get_os () const
 get the operating system
 
std::string get_datetime (const std::time_t &rawtime) const
 get the date and time as a string YYYYMMDDHHMMSS
 

Private Attributes

CURL * curlPtr
 pointer to the curl handler instance
 
FILE * devNull
 pointer to /dev/null
 
std::list< ServerserverList
 List of servers to try (tracker and proxy)
 
long timeoutSeconds
 seconds until the request will timeout (may have issues with signals)
 
std::string methodList
 list of active methods
 
std::string dakotaVersion
 DAKOTA version.
 
std::time_t startTime
 cached starting time in raw seconds
 
short outputLevel
 verbosity control
 

Detailed Description

TrackerHTTP: a usage tracking module that uses HTTP/HTTPS via the curl library.

Member Function Documentation

◆ send_data_using_get()

void send_data_using_get ( const std::string &  urltopost) const
private

transmit data to the web server using GET

whole url including location&fields

References TrackerHTTP::curlPtr, and TrackerHTTP::outputLevel.

◆ send_data_using_post()

void send_data_using_post ( const std::string &  datatopost)
private

POST separate location and query; datatopost="name=daniel&project=curl".

separate location and query; datatopost="name=daniel&project=curl"

References TrackerHTTP::curlPtr, TrackerHTTP::outputLevel, and TrackerHTTP::serverList.

Referenced by TrackerHTTP::post_finish(), and TrackerHTTP::post_start().


The documentation for this class was generated from the following files: