Crossfire Server  1.75.0
bufferreader.h
Go to the documentation of this file.
1 /*
2  * Crossfire -- cooperative multi-player graphical RPG and adventure game
3  *
4  * Copyright (c) 2021 the Crossfire Development Team
5  *
6  * Crossfire is free software and comes with ABSOLUTELY NO WARRANTY. You are
7  * welcome to redistribute it under certain conditions. For details, please
8  * see COPYING and LICENSE.
9  *
10  * The authors can be reached via e-mail at <crossfire@metalforge.org>.
11  */
12 
37 #ifndef BUFFERREADER_H
38 #define BUFFERREADER_H
39 
40 #include "microtar.h"
41 #include "logger.h"
42 
46 struct BufferReader;
47 
53 
59 
71 BufferReader *bufferreader_init_from_file(BufferReader *br, const char *filepath, const char *failureMessage, LogLevel failureLevel);
72 
80 
88 BufferReader *bufferreader_init_from_memory(BufferReader *br, const char *data, size_t length);
89 
96 
104 char *bufferreader_get_line(BufferReader *br, char *buffer, size_t length);
105 
112 
119 
126 
127 #endif /* BUFFERREADER_H */
BufferReader * bufferreader_init_from_file(BufferReader *br, const char *filepath, const char *failureMessage, LogLevel failureLevel)
Initialize or create a BufferReader from a file path.
void bufferreader_destroy(BufferReader *br)
Destroy a BufferReader.
size_t bufferreader_current_line(BufferReader *br)
Return the index of the last line returned by bufferreader_next_line().
BufferReader * bufferreader_create()
Create a new BufferReader.
LogLevel
Log levels for the LOG() function.
Definition: logger.h:10
char * bufferreader_get_line(BufferReader *br, char *buffer, size_t length)
Copy the next line in the buffer, keeping the newline.
size_t bufferreader_data_length(BufferReader *br)
Return the length of the buffer data.
Log levels.
char * bufferreader_next_line(BufferReader *br)
Return the next line in the buffer, as separated by a newline.
BufferReader * bufferreader_init_from_memory(BufferReader *br, const char *data, size_t length)
Initialize or create a BufferReader from a memory block.
char * bufferreader_data(BufferReader *br)
Get the whole buffer, independently of the calls to bufferreader_next_line().
void bufferreader_init_from_tar_file(BufferReader *br, mtar_t *tar, mtar_header_t *h)
Initialize a BufferReader from a tar file entry.