µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os::posix::directory_lockable< T, L > Class Template Reference

#include <directory.h>

+ Inheritance diagram for os::posix::directory_lockable< T, L >:

Public Types

using lockable_type = L
 
using value_type = T
 

Public Member Functions

Constructors & Destructor
 directory_lockable (file_system &fs, lockable_type &locker)
 
virtual ~directory_lockable () override
 
Public Member Functions
virtual direntread (void) override
 
virtual void rewind (void) override
 
virtual int close (void) override
 
value_typeimpl (void) const
 
Public Member Functions
direntdir_entry (void)
 
class file_systemget_file_system (void) const
 

Detailed Description

template<typename T, typename L>
class os::posix::directory_lockable< T, L >

Definition at line 387 of file directory.h.

Member Typedef Documentation

◆ lockable_type

template<typename T , typename L >
using os::posix::directory_lockable< T, L >::lockable_type = L

Definition at line 393 of file directory.h.

◆ value_type

template<typename T , typename L >
using os::posix::directory_lockable< T, L >::value_type = T

Definition at line 392 of file directory.h.

Constructor & Destructor Documentation

◆ directory_lockable()

template<typename T , typename L >
os::posix::directory_lockable< T, L >::directory_lockable ( file_system fs,
lockable_type locker 
)

Definition at line 553 of file directory.h.

555 : directory{ impl_instance_ }, //
556 impl_instance_{ fs }, //
557 locker_ (locker)
558 {
559#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
560 trace::printf ("directory_lockable::%s()=@%p\n", __func__, this);
561#endif
562 }
directory(directory_impl &impl)
Definition directory.cpp:33
int printf(const char *format,...)
Write a formatted string to the trace device.
Definition trace.cpp:59

References os::trace::printf().

◆ ~directory_lockable()

template<typename T , typename L >
os::posix::directory_lockable< T, L >::~directory_lockable
overridevirtual

Definition at line 570 of file directory.h.

571 {
572#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
573 trace::printf ("directory_lockable::%s() @%p\n", __func__, this);
574#endif
575 }

References os::trace::printf().

Member Function Documentation

◆ close()

template<typename T , typename L >
int os::posix::directory_lockable< T, L >::close ( void  )
overridevirtual

Reimplemented from os::posix::directory.

Definition at line 608 of file directory.h.

609 {
610#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
611 trace::printf ("directory_lockable::%s() @%p\n", __func__, this);
612#endif
613
614 std::lock_guard<L> lock{ locker_ };
615
616 return directory::close ();
617 }
virtual int close(void)
Definition directory.cpp:84
port::scheduler::state_t lock(void)

References os::posix::directory::close(), and os::trace::printf().

◆ dir_entry()

dirent * os::posix::directory::dir_entry ( void  )
inlineinherited

Definition at line 497 of file directory.h.

498 {
499 return &(impl ().dir_entry_);
500 }
directory_impl & impl(void) const
Definition directory.h:503

References os::posix::directory::impl().

◆ get_file_system()

file_system & os::posix::directory::get_file_system ( void  ) const
inlineinherited

Definition at line 491 of file directory.h.

492 {
493 return impl ().get_file_system ();
494 }
class file_system & get_file_system(void) const
Definition directory.h:511

References os::posix::directory_impl::get_file_system(), and os::posix::directory::impl().

Referenced by os::posix::directory::close().

◆ impl()

template<typename T , typename L >
directory_lockable< T, L >::value_type & os::posix::directory_lockable< T, L >::impl ( void  ) const

Definition at line 621 of file directory.h.

622 {
623 return static_cast<value_type&> (impl_);
624 }

◆ read()

template<typename T , typename L >
dirent * os::posix::directory_lockable< T, L >::read ( void  )
overridevirtual

Reimplemented from os::posix::directory.

Definition at line 582 of file directory.h.

583 {
584#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
585 trace::printf ("directory_lockable::%s() @%p\n", __func__, this);
586#endif
587
588 std::lock_guard<L> lock{ locker_ };
589
590 return directory::read ();
591 }
virtual dirent * read(void)
Definition directory.cpp:50

References os::trace::printf(), and os::posix::directory::read().

◆ rewind()

template<typename T , typename L >
void os::posix::directory_lockable< T, L >::rewind ( void  )
overridevirtual

Reimplemented from os::posix::directory.

Definition at line 595 of file directory.h.

596 {
597#if defined(OS_TRACE_POSIX_IO_DIRECTORY)
598 trace::printf ("directory_lockable::%s() @%p\n", __func__, this);
599#endif
600
601 std::lock_guard<L> lock{ locker_ };
602
603 return directory::rewind ();
604 }
virtual void rewind(void)
Definition directory.cpp:68

References os::trace::printf(), and os::posix::directory::rewind().


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