Blender  V3.3
Classes | Typedefs | Enumerations | Functions
ED_file_indexer.h File Reference
#include "BLO_readfile.h"

Go to the source code of this file.

Classes

struct  FileIndexerEntry
 
struct  FileIndexerEntries
 
struct  FileIndexerType
 

Typedefs

typedef enum eFileIndexerResult eFileIndexerResult
 
typedef struct FileIndexerEntry FileIndexerEntry
 
typedef struct FileIndexerEntries FileIndexerEntries
 
typedef void *(* FileIndexerInitUserDataFunc) (const char *root_directory, size_t root_directory_maxlen)
 
typedef void(* FileIndexerFreeUserDataFunc) (void *)
 
typedef void(* FileIndexerFinishedFunc) (void *)
 
typedef eFileIndexerResult(* FileIndexerReadIndexFunc) (const char *file_name, FileIndexerEntries *entries, int *r_read_entries_len, void *user_data)
 
typedef void(* FileIndexerUpdateIndexFunc) (const char *file_name, FileIndexerEntries *entries, void *user_data)
 
typedef struct FileIndexerType FileIndexerType
 

Enumerations

enum  eFileIndexerResult { FILE_INDEXER_ENTRIES_LOADED , FILE_INDEXER_NEEDS_UPDATE }
 

Functions

void ED_file_indexer_entries_clear (FileIndexerEntries *indexer_entries)
 
void ED_file_indexer_entries_extend_from_datablock_infos (FileIndexerEntries *indexer_entries, const LinkNode *datablock_infos, int idcode)
 

Typedef Documentation

◆ eFileIndexerResult

Result code of the read_index callback.

◆ FileIndexerEntries

Contains all entries of a blend file.

◆ FileIndexerEntry

FileIndexerEntry contains all data that is required to create a file listing entry.

◆ FileIndexerFinishedFunc

typedef void(* FileIndexerFinishedFunc) (void *)

Definition at line 63 of file ED_file_indexer.h.

◆ FileIndexerFreeUserDataFunc

typedef void(* FileIndexerFreeUserDataFunc) (void *)

Definition at line 62 of file ED_file_indexer.h.

◆ FileIndexerInitUserDataFunc

typedef void*(* FileIndexerInitUserDataFunc) (const char *root_directory, size_t root_directory_maxlen)

Definition at line 60 of file ED_file_indexer.h.

◆ FileIndexerReadIndexFunc

typedef eFileIndexerResult(* FileIndexerReadIndexFunc) (const char *file_name, FileIndexerEntries *entries, int *r_read_entries_len, void *user_data)

Definition at line 64 of file ED_file_indexer.h.

◆ FileIndexerType

◆ FileIndexerUpdateIndexFunc

typedef void(* FileIndexerUpdateIndexFunc) (const char *file_name, FileIndexerEntries *entries, void *user_data)

Definition at line 68 of file ED_file_indexer.h.

Enumeration Type Documentation

◆ eFileIndexerResult

Result code of the read_index callback.

Enumerator
FILE_INDEXER_ENTRIES_LOADED 

File listing entries are loaded from the index. Reading entries from the blend file itself should be skipped.

FILE_INDEXER_NEEDS_UPDATE 

Index isn't available or not up to date. Entries should be read from the blend file and update_index must be called to update the index.

Definition at line 31 of file ED_file_indexer.h.

Function Documentation

◆ ED_file_indexer_entries_clear()

void ED_file_indexer_entries_clear ( FileIndexerEntries indexer_entries)

Removes all entries inside the given indexer_entries.

Definition at line 75 of file file_indexer.cc.

References BLI_linklist_free(), ED_file_indexer_entry_free(), and FileIndexerEntries::entries.

Referenced by filelist_readjob_list_lib().

◆ ED_file_indexer_entries_extend_from_datablock_infos()

void ED_file_indexer_entries_extend_from_datablock_infos ( FileIndexerEntries indexer_entries,
const LinkNode datablock_infos,
int  idcode 
)

Adds all entries from the given datablock_infos to the indexer_entries. The datablock_infos must only contain data for a single IDType. The specific IDType must be passed in the idcode parameter.

Definition at line 56 of file file_indexer.cc.

References BLI_linklist_prepend(), FileIndexerEntries::entries, blender::ed::file::indexer::file_indexer_entry_create_from_datablock_info(), and LinkNode::next.

Referenced by filelist_readjob_list_lib().