28#ifndef CMSIS_PLUS_POSIX_IO_DIRECTORY_H_
29#define CMSIS_PLUS_POSIX_IO_DIRECTORY_H_
33#if defined(__cplusplus)
37#if defined(OS_USE_OS_APP_CONFIG_H)
38#include <cmsis-plus/os-app-config.h>
50#pragma GCC diagnostic push
53#pragma clang diagnostic ignored "-Wc++98-compat"
54#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
72#pragma GCC diagnostic push
73#pragma GCC diagnostic ignored "-Wpadded"
367 template<
typename T,
typename L>
423 read (
void)
override;
431 close (
void)
override;
459#pragma GCC diagnostic pop
482 return &(
impl ().dir_entry_);
509#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
510 trace::printf (
"directory_implementable::%s()=@%p\n", __func__,
this);
517#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
518 trace::printf (
"directory_implementable::%s() @%p\n", __func__,
this);
531 template<
typename T,
typename L>
540#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
541 trace::printf (
"directory_lockable::%s()=@%p\n", __func__,
this);
545 template<
typename T,
typename L>
548#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
549 trace::printf (
"directory_lockable::%s() @%p\n", __func__,
this);
555 template<
typename T,
typename L>
559#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
560 trace::printf (
"directory_lockable::%s() @%p\n", __func__,
this);
563 std::lock_guard<L> lock
569 template<
typename T,
typename L>
573#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
574 trace::printf (
"directory_lockable::%s() @%p\n", __func__,
this);
577 std::lock_guard<L> lock
583 template<
typename T,
typename L>
587#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
588 trace::printf (
"directory_lockable::%s() @%p\n", __func__,
this);
591 std::lock_guard<L> lock
597 template<
typename T,
typename L>
608#pragma GCC diagnostic pop
virtual struct dirent * do_read(void)=0
class file_system & file_system(void) const
virtual int do_close(void)=0
virtual void do_rewind(void)=0
virtual ~directory_impl()
value_type & impl(void) const
virtual ~directory_implementable() override
directory_implementable(class file_system &fs)
value_type & impl(void) const
virtual int close(void) override
virtual ~directory_lockable() override
directory_lockable(class file_system &fs, lockable_type &locker)
virtual struct dirent * read(void) override
virtual void rewind(void) override
virtual struct dirent * read(void)
class file_system & file_system(void) const
struct dirent * dir_entry(void)
virtual void rewind(void)
directory_impl & impl(void) const
The core of a double linked list, pointers to next, previous.
int printf(const char *format,...)
Write a formatted string to the trace device.