Listing 5: Public interface of basic_search_sequence_value_type.
class basic_search_sequence_value_type
{
...
string_t get_path() const;
#ifdef RECLS_PLATFORM_API_WIN32
char_type get_drive() const;
#endif /* RECLS_PLATFORM_API_WIN32 */
string_t get_directory() const;
string_t get_directory_path() const;
directory_parts_type get_directory_parts() const;
string_t get_file() const;
string_t get_short_file() const;
string_t get_filename() const;
string_t get_fileext() const;
recls_time_t get_creation_time() const;
recls_time_t get_modification_time() const;
recls_time_t get_last_access_time() const;
recls_time_t get_last_status_change_time() const;
recls_filesize_t get_size() const;
recls_bool_t is_readonly() const;
recls_bool_t is_directory() const;
recls_bool_t is_link() const;
...
};
template <typename C, typename T>
inline class_type
&basic_search_sequence_value_type<C, T>::operator =( class_type const &rhs)
{
if(NULL != m_info)
{
traits_type::CloseDetails(m_info);
}
m_info = traits_type::CopyDetails(rhs.m_info);
return *this;
}
template <typename C, typename T>
inline string_t basic_search_sequence_value_type<C, T>::get_filename() const
{
recls_assert(NULL != m_info);
return string_t(m_info->fileName.begin, m_info->fileName.end);
}
template <typename C, typename T>
inline directory_parts_type
basic_search_sequence_value_type<C, T>::get_directory_parts() const
{
recls_assert(NULL != m_info);
return directory_parts_type( m_info->directoryParts.begin
, m_info->directoryParts.end);
}