MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / handle_timeout

Method handle_timeout

dds/DCPS/DataDurabilityCache.cpp:85–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83 }
84
85 virtual int handle_timeout(const ACE_Time_Value& /* current_time */,
86 const void* /* act */)
87 {
88 OpenDDS::DCPS::ThreadStatusManager::Event ev(TheServiceParticipant->get_thread_status_manager());
89
90 if (OpenDDS::DCPS::DCPS_debug_level >= 4) {
91 ACE_DEBUG((LM_DEBUG,
92 ACE_TEXT("(%P|%t) OpenDDS - Cleaning up ")
93 ACE_TEXT("data durability cache.\n")));
94 }
95
96 typedef OpenDDS::DCPS::DurabilityQueue<
97 OpenDDS::DCPS::DataDurabilityCache::sample_data_type>
98 data_queue_type;
99
100 // Cleanup all data samples corresponding to the cleanup delay.
101 data_queue_type *& queue = this->sample_list_[this->index_];
102 ACE_DES_FREE(queue,
103 this->allocator_->free,
104 data_queue_type);
105 queue = 0;
106
107 try {
108 cleanup_directory(path_, this->data_dir_);
109
110 } catch (const std::exception& ex) {
111 if (OpenDDS::DCPS::DCPS_debug_level > 0) {
112 ACE_ERROR((LM_ERROR,
113 ACE_TEXT("(%P|%t) Cleanup_Handler::handle_timout ")
114 ACE_TEXT("couldn't remove directory for PERSISTENT ")
115 ACE_TEXT("data: %C\n"), ex.what()));
116 }
117 }
118
119 // No longer any need to keep track of the timer ID.
120 this->timer_ids_->remove(this->tid_);
121
122 return 0;
123 }
124
125 void timer_id(
126 long tid,

Callers

nothing calls this directly

Calls 3

cleanup_directoryFunction · 0.85
whatMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected