DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
OksValidateJob Struct Reference
Inheritance diagram for OksValidateJob:
[legend]
Collaboration diagram for OksValidateJob:
[legend]

Public Member Functions

 OksValidateJob (OksKernel &kernel, const std::string &file_name)
void run ()
Public Member Functions inherited from dunedaq::oks::OksJob
virtual ~OksJob ()

Private Member Functions

 OksValidateJob (const OksValidateJob &)
OksValidateJoboperator= (const OksValidateJob &)

Private Attributes

OksKernel m_kernel
const std::string & m_file_name

Detailed Description

Definition at line 56 of file oks_validate_repository.cxx.

Constructor & Destructor Documentation

◆ OksValidateJob() [1/2]

OksValidateJob::OksValidateJob ( OksKernel & kernel,
const std::string & file_name )
inline

Definition at line 60 of file oks_validate_repository.cxx.

60 :
61 m_kernel(kernel), m_file_name(file_name)
62 {
63 ;
64 }
const std::string & m_file_name

◆ OksValidateJob() [2/2]

OksValidateJob::OksValidateJob ( const OksValidateJob & )
private

Member Function Documentation

◆ operator=()

OksValidateJob & OksValidateJob::operator= ( const OksValidateJob & )
private

◆ run()

void OksValidateJob::run ( void )
inlinevirtual

Implements dunedaq::oks::OksJob.

Definition at line 67 of file oks_validate_repository.cxx.

68 {
69 static std::mutex s_mutex;
70
71 try
72 {
73 auto start_usage = std::chrono::steady_clock::now();
74
75 m_kernel.set_silence_mode(true);
76
77 m_kernel.load_file(m_file_name);
78
79 if (!m_kernel.get_bind_classes_status().empty() || !m_kernel.get_bind_objects_status().empty())
80 {
81 std::lock_guard lock(s_mutex);
82
83 if (s_load_error.empty())
84 {
86
87 if (!m_kernel.get_bind_classes_status().empty())
88 {
89 s_load_error += "the schema contains dangling references to non-loaded classes:\n";
90 s_load_error += m_kernel.get_bind_classes_status();
91 }
92
93 if (!m_kernel.get_bind_objects_status().empty())
94 {
95 s_load_error += "the data contain dangling references to non-loaded objects:\n";
96 s_load_error += m_kernel.get_bind_objects_status();
97 }
98 }
99 }
100
101 static std::mutex s_log_mutex;
102 std::lock_guard scoped_lock(s_log_mutex);
103
104 log_timestamp() << "validated file \"" << m_file_name << "\" in " << std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now()-start_usage).count() / 1000. << " ms\n";
105 }
106 catch (std::exception& ex)
107 {
108 std::lock_guard lock(s_mutex);
109
110 if (s_load_error.empty())
111 {
113 s_load_error += ex.what();
114
115 const std::string& user_repository(m_kernel.get_user_repository_root());
116 const std::size_t user_repository_len(m_kernel.get_user_repository_root().length() + 1);
117
118 std::size_t pos;
119 while ((pos = s_load_error.find(user_repository)) != std::string::npos)
120 s_load_error.replace(pos, user_repository_len, "");
121 }
122 }
123 }
std::ostream & log_timestamp(__LogSeverity__ severity=Log)
Definition kernel.cpp:5727
static void init_file_load_error(const std::string &file)
std::string s_load_error

Member Data Documentation

◆ m_file_name

const std::string& OksValidateJob::m_file_name
private

Definition at line 128 of file oks_validate_repository.cxx.

◆ m_kernel

OksKernel OksValidateJob::m_kernel
private

Definition at line 127 of file oks_validate_repository.cxx.


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