77 lines
1.7 KiB
C
Executable File
77 lines
1.7 KiB
C
Executable File
#ifndef __FAST_BUFFER_H__
|
|
#define __FAST_BUFFER_H__
|
|
|
|
#include <stdint.h>
|
|
#include "common_define.h"
|
|
|
|
typedef struct fast_buffer {
|
|
char *data;
|
|
int alloc_size;
|
|
int length;
|
|
} FastBuffer;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
static inline int fast_buffer_length(FastBuffer *buffer)
|
|
{
|
|
return buffer->length;
|
|
}
|
|
|
|
static inline char *fast_buffer_data(FastBuffer *buffer)
|
|
{
|
|
return buffer->data;
|
|
}
|
|
|
|
int fast_buffer_init_ex(FastBuffer *buffer, const int init_capacity);
|
|
|
|
static inline int fast_buffer_init(FastBuffer *buffer)
|
|
{
|
|
return fast_buffer_init_ex(buffer, 0);
|
|
}
|
|
|
|
#define fast_buffer_clear(buffer) fast_buffer_reset(buffer)
|
|
|
|
static inline void fast_buffer_reset(FastBuffer *buffer)
|
|
{
|
|
buffer->length = 0;
|
|
*buffer->data = '\0';
|
|
}
|
|
|
|
void fast_buffer_destroy(FastBuffer *buffer);
|
|
|
|
int fast_buffer_check(FastBuffer *buffer, const int inc_len);
|
|
|
|
int fast_buffer_append(FastBuffer *buffer, const char *format, ...);
|
|
|
|
int fast_buffer_append_buff(FastBuffer *buffer, const char *data, const int len);
|
|
|
|
int fast_buffer_append_int(FastBuffer *buffer, const int n);
|
|
|
|
int fast_buffer_append_int64(FastBuffer *buffer, const int64_t n);
|
|
|
|
int fast_buffer_append_file(FastBuffer *buffer, const char *filename);
|
|
|
|
static inline int fast_buffer_append_string(FastBuffer *buffer, const char *str)
|
|
{
|
|
return fast_buffer_append_buff(buffer, str, strlen(str));
|
|
}
|
|
|
|
static inline int fast_buffer_append_string2(FastBuffer *buffer, const string_t *add)
|
|
{
|
|
return fast_buffer_append_buff(buffer, add->str, add->len);
|
|
}
|
|
|
|
static inline int fast_buffer_append_buffer(FastBuffer *buffer, FastBuffer *src)
|
|
{
|
|
return fast_buffer_append_buff(buffer, src->data, src->length);
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|