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
00026
00027 #ifndef __ALICEML_ARCHIVE_H__
00028 #define __ALICEML_ARCHIVE_H__
00029
00030 #include "aliceml.h"
00031 #include <stdio.h>
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00040 typedef enum ML_SeekOrigin {
00042 ML_SEEK_BEGIN,
00044 ML_SEEK_CURRENT,
00046 ML_SEEK_END,
00047 } ML_SeekOrigin;
00048
00052 typedef struct ML_Archive ML_Archive;
00053
00055 ALICEMLAPI ML_Archive * ALICEMLCALL ML_Archive_LoadFile(const char *filename, const char *mode);
00056
00058 ALICEMLAPI ML_Archive * ALICEMLCALL ML_Archive_CreateFromFile(FILE *file, ML_bool auto_close);
00059
00061 ALICEMLAPI ML_Archive * ALICEMLCALL ML_Archive_CreateFromMem(void *memory, ML_size size);
00062
00064 ALICEMLAPI ML_Archive * ALICEMLCALL ML_Archive_CreateFromConstMem(const void *memory, ML_size size);
00065
00067 ALICEMLAPI void ALICEMLCALL ML_Archive_Destroy(ML_Archive *self);
00068
00070 ALICEMLAPI ML_size ALICEMLCALL ML_Archive_Read(ML_Archive *self, void *data, ML_size size);
00071
00073 ALICEMLAPI ML_size ALICEMLCALL ML_Archive_Write(ML_Archive *self, const void *data, ML_size size);
00074
00076 ALICEMLAPI int ALICEMLCALL ML_Archive_Seek(ML_Archive *self, int offset, ML_SeekOrigin origin);
00077
00078 #ifdef __cplusplus
00079 }
00080 #endif
00081
00082 #endif