Blender V4.3
ED_file_indexer.hh File Reference
#include "BLO_readfile.hh"

Go to the source code of this file.

Classes

struct  FileIndexerEntry
 
struct  FileIndexerEntries
 
struct  FileIndexerType
 

Typedefs

using FileIndexerInitUserDataFunc
 
using FileIndexerFreeUserDataFunc = void (*)(void *)
 
using FileIndexerFinishedFunc = void (*)(void *)
 
using FileIndexerReadIndexFunc
 
using FileIndexerUpdateIndexFunc
 

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, LinkNode *datablock_infos, int idcode)
 

Typedef Documentation

◆ FileIndexerFinishedFunc

using FileIndexerFinishedFunc = void (*)(void *)

Definition at line 60 of file ED_file_indexer.hh.

◆ FileIndexerFreeUserDataFunc

using FileIndexerFreeUserDataFunc = void (*)(void *)

Definition at line 59 of file ED_file_indexer.hh.

◆ FileIndexerInitUserDataFunc

Initial value:
void *(*)(const char *root_directory,
size_t root_directory_maxlen)

Definition at line 57 of file ED_file_indexer.hh.

◆ FileIndexerReadIndexFunc

Initial value:
eFileIndexerResult (*)(const char *file_name,
int *r_read_entries_len,
void *user_data)
eFileIndexerResult

Definition at line 61 of file ED_file_indexer.hh.

◆ FileIndexerUpdateIndexFunc

Initial value:
void (*)(const char *file_name,
void *user_data)

Definition at line 65 of file ED_file_indexer.hh.

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 28 of file ED_file_indexer.hh.

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 71 of file file_indexer.cc.

References BLI_linklist_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,
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.

Note
This can "steal" data contained in datablock_infos, to avoid expensive copies, which is supported by the BLODataBlockInfo type.

Definition at line 57 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().