@@ -28,7 +28,11 @@ ADsim::ADsim(ADsim &&r):
2828 m_rid(r.m_rid),
2929 m_normal_events(std::move(r.m_normal_events)),
3030 m_metadata(std::move(r.m_metadata)),
31+ #ifdef ENABLE_PROVDB
3132 m_pdb_client (std::move(r.m_pdb_client)),
33+ #else
34+ m_prov_io (std::move(r.m_prov_io)),
35+ #endif
3236 m_outlier (r.m_outlier),
3337 m_net_client(r.m_net_client)
3438{
@@ -41,9 +45,16 @@ void ADsim::init(int window_size, int pid, int rid, unsigned long program_start,
4145 m_window_size = window_size;
4246 m_pid = pid;
4347 m_rid = rid;
48+ #ifdef ENABLE_PROVDB
4449 m_pdb_client.reset (new ADProvenanceDBclient (rid));
4550 m_pdb_client->setEnableHandshake (false );
4651 m_pdb_client->connect (getProvDB ().getAddr (), getProvDB ().getNshards ());
52+ #else
53+ m_prov_io.reset (new ADio (m_pid, m_rid));
54+ m_prov_io->setDispatcher ();
55+ m_prov_io->setDestructorThreadWaitTime (0 ); // don't know why we would need a wait
56+ m_prov_io->setOutputPath (" ." );
57+ #endif
4758 m_program_start = program_start;
4859 m_step_freq = step_freq;
4960 m_largest_step = 0 ;
@@ -206,11 +217,18 @@ void ADsim::step(const unsigned long step){
206217 ADAnomalyProvenance::getProvenanceEntries (anomalous_events, normal_events, m_normal_events,
207218 anom, step, step_start_time, step_end_time, m_window_size,
208219 params, evmap, counters, m_metadata);
220+ #ifdef ENABLE_PROVDB
209221 // Send to provdb
210222 if (anomalous_events.size () > 0 )
211223 m_pdb_client->sendMultipleData (anomalous_events, ProvenanceDataType::AnomalyData);
212224 if (normal_events.size () > 0 )
213225 m_pdb_client->sendMultipleData (normal_events, ProvenanceDataType::NormalExecData);
226+ #else
227+ if (anomalous_events.size () > 0 )
228+ m_prov_io->writeJSON (anomalous_events, step, " anomalies" );
229+ if (normal_events.size () > 0 )
230+ m_prov_io->writeJSON (normal_events, step, " normalexecs" );
231+ #endif
214232 }
215233
216234
0 commit comments