@@ -116,22 +116,22 @@ namespace dmq
116116
117117#elif defined(DMQ_THREAD_FREERTOS)
118118 // Use the custom FreeRTOS wrapper
119- using Clock = dmq::FreeRTOSClock;
119+ using Clock = dmq::os:: FreeRTOSClock;
120120
121121#elif defined(DMQ_THREAD_THREADX)
122122 // Use the custom ThreadX wrapper
123- using Clock = dmq::ThreadXClock;
123+ using Clock = dmq::os:: ThreadXClock;
124124
125125#elif defined(DMQ_THREAD_ZEPHYR)
126126 // Use the custom Zephyr wrapper
127- using Clock = dmq::ZephyrClock;
127+ using Clock = dmq::os:: ZephyrClock;
128128
129129#elif defined(DMQ_THREAD_CMSIS_RTOS2)
130- using Clock = dmq::CmsisRtos2Clock;
130+ using Clock = dmq::os:: CmsisRtos2Clock;
131131
132132#else
133133 // Assuming implemented the 'g_ticks' variable
134- using Clock = dmq::BareMetalClock;
134+ using Clock = dmq::os:: BareMetalClock;
135135#endif
136136
137137 // --- GENERIC TYPES ---
@@ -151,31 +151,31 @@ namespace dmq
151151
152152#elif defined(DMQ_THREAD_FREERTOS)
153153 // Use the custom FreeRTOS wrapper
154- using Mutex = dmq::FreeRTOSMutex;
155- using RecursiveMutex = dmq::FreeRTOSRecursiveMutex;
156- using ConditionVariable = dmq::FreeRTOSConditionVariable;
154+ using Mutex = dmq::os:: FreeRTOSMutex;
155+ using RecursiveMutex = dmq::os:: FreeRTOSRecursiveMutex;
156+ using ConditionVariable = dmq::os:: FreeRTOSConditionVariable;
157157 template <typename T> using LockGuard = PortableLockGuard<T>;
158158 template <typename T> using UniqueLock = std::unique_lock<T>;
159159 #define DMQ_HAS_CV
160160
161161#elif defined(DMQ_THREAD_THREADX)
162162 // Use the custom ThreadX wrapper
163- using Mutex = dmq::ThreadXMutex;
164- using RecursiveMutex = dmq::ThreadXRecursiveMutex;
165- using ConditionVariable = dmq::ThreadXConditionVariable;
163+ using Mutex = dmq::os:: ThreadXMutex;
164+ using RecursiveMutex = dmq::os:: ThreadXRecursiveMutex;
165+ using ConditionVariable = dmq::os:: ThreadXConditionVariable;
166166 template <typename T> using LockGuard = PortableLockGuard<T>;
167167 template <typename T> using UniqueLock = std::unique_lock<T>;
168168 #define DMQ_HAS_CV
169169
170170#elif defined(DMQ_THREAD_ZEPHYR)
171171 // Use the custom Zephyr wrapper
172- using Mutex = dmq::ZephyrMutex;
173- using RecursiveMutex = dmq::ZephyrRecursiveMutex;
172+ using Mutex = dmq::os:: ZephyrMutex;
173+ using RecursiveMutex = dmq::os:: ZephyrRecursiveMutex;
174174 template <typename T> using LockGuard = PortableLockGuard<T>;
175175
176176#elif defined(DMQ_THREAD_CMSIS_RTOS2)
177- using Mutex = dmq::CmsisRtos2Mutex;
178- using RecursiveMutex = dmq::CmsisRtos2RecursiveMutex;
177+ using Mutex = dmq::os:: CmsisRtos2Mutex;
178+ using RecursiveMutex = dmq::os:: CmsisRtos2RecursiveMutex;
179179 template <typename T> using LockGuard = PortableLockGuard<T>;
180180
181181#else
@@ -237,35 +237,37 @@ namespace dmq
237237 #undef XALLOCATOR
238238 #define XALLOCATOR
239239
240- // Use default std::allocator for dynamic storage allocation
241- template <typename T, typename Alloc = std::allocator<T>>
242- class xlist : public std ::list<T, Alloc> {
243- public:
244- using std::list<T, Alloc>::list; // Inherit constructors
245- using std::list<T, Alloc>::operator =;
246- };
247-
248- typedef std::basic_ostringstream<char , std::char_traits<char >> xostringstream;
249- typedef std::basic_stringstream<char , std::char_traits<char >> xstringstream;
250-
251- typedef std::string xstring;
252-
253- // Fallback xmake_shared — uses std::make_shared when fixed-block allocator is disabled
254- template <typename T, typename ... Args>
255- inline std::shared_ptr<T> xmake_shared (Args&&... args)
256- {
257- return std::make_shared<T>(std::forward<Args>(args)...);
258- }
259-
260- // Fallback xnew/xdelete — use standard new/delete when fixed-block allocator is disabled
261- template <typename T, typename ... Args>
262- inline T* xnew (Args&&... args) {
263- return new (std::nothrow) T (std::forward<Args>(args)...);
264- }
265-
266- template <typename T>
267- inline void xdelete (T* p) {
268- delete p;
240+ namespace dmq {
241+ // Use default std::allocator for dynamic storage allocation
242+ template <typename T, typename Alloc = std::allocator<T>>
243+ class xlist : public std ::list<T, Alloc> {
244+ public:
245+ using std::list<T, Alloc>::list; // Inherit constructors
246+ using std::list<T, Alloc>::operator =;
247+ };
248+
249+ typedef std::basic_ostringstream<char , std::char_traits<char >> xostringstream;
250+ typedef std::basic_stringstream<char , std::char_traits<char >> xstringstream;
251+
252+ typedef std::string xstring;
253+
254+ // Fallback xmake_shared — uses std::make_shared when fixed-block allocator is disabled
255+ template <typename T, typename ... Args>
256+ inline std::shared_ptr<T> xmake_shared (Args&&... args)
257+ {
258+ return std::make_shared<T>(std::forward<Args>(args)...);
259+ }
260+
261+ // Fallback xnew/xdelete — use standard new/delete when fixed-block allocator is disabled
262+ template <typename T, typename ... Args>
263+ inline T* xnew (Args&&... args) {
264+ return new (std::nothrow) T (std::forward<Args>(args)...);
265+ }
266+
267+ template <typename T>
268+ inline void xdelete (T* p) {
269+ delete p;
270+ }
269271 }
270272#endif
271273
0 commit comments