Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
return r;
}
+int collecty_file_open_buffer(collecty_file** file, collecty_ctx* ctx, collecty_buffer* buffer) {
+ collecty_file* self = NULL;
+ int r;
+
+ // Create a new object
+ r = collecty_file_create(&self, ctx);
+ if (r < 0)
+ goto ERROR;
+
+ // Open the buffer as a file
+ self->f = collecty_buffer_fopen(buffer, "r");
+ if (!self->f) {
+ r = -errno;
+ goto ERROR;
+ }
+
+ // Return the pointer
+ *file = self;
+ return 0;
+
+ERROR:
+ if (self)
+ collecty_file_unref(self);
+
+ return r;
+}
+
collecty_file* collecty_file_ref(collecty_file* self) {
++self->nrefs;
return self;
typedef struct collecty_file collecty_file;
+#include "buffer.h"
#include "ctx.h"
int collecty_file_open_path(collecty_file** file, collecty_ctx* ctx, const char* path);
+int collecty_file_open_buffer(collecty_file** file, collecty_ctx* ctx, collecty_buffer* buffer);
collecty_file* collecty_file_ref(collecty_file* self);
collecty_file* collecty_file_unref(collecty_file* self);