4coder/4ed_working_set.h

67 lines
1.5 KiB
C
Raw Normal View History

/*
* Mr. 4th Dimention - Allen Webster
*
* 24.03.2018
*
* Working_Set data structure
*
*/
// TOP
#if !defined(FRED_WORKING_SET_H)
#define FRED_WORKING_SET_H
2019-08-12 09:16:04 +00:00
struct Working_Set{
2019-08-13 04:19:02 +00:00
// NOTE(allen): After initialization of file_change_thread
// the members of this struct should only be accessed by a thread
// who owns the mutex member.
2019-08-12 09:16:04 +00:00
Arena arena;
Editing_File *free_files;
Buffer_ID id_counter;
Node active_file_sentinel;
Node touch_order_sentinel;
2019-08-12 09:16:04 +00:00
i32 active_file_count;
Node edit_finished_sentinel;
i32 edit_finished_count;
u64 time_of_next_edit_finished_signal;
Plat_Handle edit_finished_timer;
b32 do_not_mark_edits;
Table_u64_u64 id_to_ptr_table;
Table_Data_u64 canon_table;
Table_Data_u64 name_table;
2019-08-13 04:19:02 +00:00
Node *sync_check_iterator;
2019-08-13 18:54:15 +00:00
Node has_external_mod_sentinel;
2019-08-13 04:19:02 +00:00
System_Mutex mutex;
System_Thread file_change_thread;
i32 default_display_width;
i32 default_minimum_base_display_width;
2019-08-12 09:16:04 +00:00
// TODO(allen): do(update clipboard system to exist fully in the custom layer)
2019-08-13 04:19:02 +00:00
// NOTE(allen): These members have nothing to do with the working set or
// the mutex that gaurds the other members.
2019-08-12 09:16:04 +00:00
String_Const_u8 clipboards[64];
i32 clipboard_size;
i32 clipboard_max_size;
i32 clipboard_current;
i32 clipboard_rolling;
};
2019-01-31 12:38:24 +00:00
internal void
file_mark_edit_finished(Working_Set *working_set, Editing_File *file);
2019-01-31 12:38:24 +00:00
internal b32
2019-06-01 23:58:28 +00:00
file_unmark_edit_finished(Working_Set *working_set, Editing_File *file);
#endif
// BOTTOM