00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _BLESS_BUFFER_H
00026 #define _BLESS_BUFFER_H
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00032 #include <unistd.h>
00033
00034
00035 #include "buffer_source.h"
00036 #include "buffer_options.h"
00037 #include "buffer_event.h"
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 typedef struct bless_buffer bless_buffer_t;
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 typedef int (bless_progress_func)(void *info);
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 typedef void (bless_buffer_event_func_t)(bless_buffer_t *buf,
00074 struct bless_buffer_event_info *info, void *user_data);
00075
00076
00077
00078
00079
00080
00081
00082 int bless_buffer_new(bless_buffer_t **buf);
00083
00084 int bless_buffer_save(bless_buffer_t *buf, int fd,
00085 bless_progress_func *progress_func);
00086
00087 int bless_buffer_free(bless_buffer_t *buf);
00088
00089
00090
00091
00092
00093
00094
00095
00096 int bless_buffer_append(bless_buffer_t *buf, bless_buffer_source_t *src,
00097 off_t src_offset, off_t length);
00098
00099 int bless_buffer_insert(bless_buffer_t *buf, off_t offset,
00100 bless_buffer_source_t *src, off_t src_offset, off_t length);
00101
00102 int bless_buffer_delete(bless_buffer_t *buf, off_t offset, off_t length);
00103
00104 int bless_buffer_read(bless_buffer_t *src, off_t src_offset, void *dst,
00105 size_t dst_offset, size_t length);
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 int bless_buffer_undo(bless_buffer_t *buf);
00123
00124 int bless_buffer_redo(bless_buffer_t *buf);
00125
00126 int bless_buffer_begin_multi_action(bless_buffer_t *buf);
00127
00128 int bless_buffer_end_multi_action(bless_buffer_t *buf);
00129
00130
00131
00132
00133
00134
00135
00136
00137 int bless_buffer_can_undo(bless_buffer_t *buf, int *can_undo);
00138
00139 int bless_buffer_can_redo(bless_buffer_t *buf, int *can_redo);
00140
00141 int bless_buffer_get_size(bless_buffer_t *buf, off_t *size);
00142
00143 int bless_buffer_set_option(bless_buffer_t *buf, bless_buffer_option_t opt,
00144 char *val);
00145
00146 int bless_buffer_get_option(bless_buffer_t *buf, char **val,
00147 bless_buffer_option_t opt);
00148
00149 int bless_buffer_set_event_callback(bless_buffer_t *buf,
00150 bless_buffer_event_func_t *func, void *user_data);
00151
00152
00153
00154
00155 #ifdef __cplusplus
00156 }
00157 #endif
00158
00159 #endif