DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::oks::ReposDirs Struct Reference

Public Member Functions

 ReposDirs (const char *op, const char *cwd, OksKernel *kernel)
 
 ~ReposDirs ()
 

Public Attributes

const char * p_repository_root
 
const char * p_user_repository_root
 
size_t p_repos_dir_len
 
size_t p_user_dir_len
 
const char * p_dir
 

Static Public Attributes

static std::mutex p_mutex
 

Detailed Description

Definition at line 4694 of file kernel.cpp.

Constructor & Destructor Documentation

◆ ReposDirs()

dunedaq::oks::ReposDirs::ReposDirs ( const char * op,
const char * cwd,
OksKernel * kernel )

Definition at line 4712 of file kernel.cpp.

4713{
4715 if(OksKernel::get_repository_root().empty()) {
4716 throw RepositoryOperationFailed(op, "the repository-root is not set (check environment variable TDAQ_DB_REPOSITORY)");
4717 }
4718 else {
4720 }
4721
4722 p_user_repository_root = kernel->get_user_repository_root().c_str();
4724 throw RepositoryOperationFailed(op, "the user-repository-root is not set (check environment variable TDAQ_DB_USER_REPOSITORY)");
4725 }
4726 else {
4728 }
4729
4730 p_mutex.lock();
4731
4732 if(strcmp(cwd, p_user_repository_root)) {
4733 if(int result = chdir(p_user_repository_root)) {
4734 p_mutex.unlock();
4735 std::ostringstream text;
4736 text << "chdir (\'" << p_user_repository_root << "\') failed with code " << result << ": " << strerror(errno);
4737 throw RepositoryOperationFailed(op, text.str());
4738 }
4739 p_dir = cwd;
4740 TLOG_DEBUG( 2 ) << "change cwd: \"" << p_user_repository_root << '\"' ;
4741 }
4742 else {
4743 p_dir = 0;
4744 TLOG_DEBUG( 2 ) << "cwd: \"" << p_user_repository_root << "\" is equal to target dir" ;
4745 }
4746}
static const std::string & get_repository_root()
Get OKS repository root.
Definition kernel.cpp:304
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
const std::string strerror(int error)
Convert C error number to string.
Definition kernel.cpp:114
const char * p_user_repository_root
Definition kernel.cpp:4700
const char * p_repository_root
Definition kernel.cpp:4699
static std::mutex p_mutex
Definition kernel.cpp:4705

◆ ~ReposDirs()

dunedaq::oks::ReposDirs::~ReposDirs ( )

Definition at line 4748 of file kernel.cpp.

4749{
4750 if(p_dir) {
4751 if(int result = chdir(p_dir)) {
4752 Oks::error_msg("ReposDirs::~ReposDirs()")
4753 << "chdir (\'" << p_dir << "\') failed with code " << result << ": " << strerror(errno) << std::endl;
4754 }
4755 TLOG_DEBUG( 2 ) << "restore cwd: \"" << p_dir << '\"' ;
4756 }
4757
4758 p_mutex.unlock();
4759}
static std::ostream & error_msg(const char *)
Definition kernel.cpp:556

Member Data Documentation

◆ p_dir

const char* dunedaq::oks::ReposDirs::p_dir

Definition at line 4703 of file kernel.cpp.

◆ p_mutex

std::mutex dunedaq::oks::ReposDirs::p_mutex
static

Definition at line 4705 of file kernel.cpp.

◆ p_repos_dir_len

size_t dunedaq::oks::ReposDirs::p_repos_dir_len

Definition at line 4701 of file kernel.cpp.

◆ p_repository_root

const char* dunedaq::oks::ReposDirs::p_repository_root

Definition at line 4699 of file kernel.cpp.

◆ p_user_dir_len

size_t dunedaq::oks::ReposDirs::p_user_dir_len

Definition at line 4702 of file kernel.cpp.

◆ p_user_repository_root

const char* dunedaq::oks::ReposDirs::p_user_repository_root

Definition at line 4700 of file kernel.cpp.


The documentation for this struct was generated from the following file: