summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/strfd.h
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2014-03-27 21:21:12 -0700
committerAnand Avati <avati@redhat.com>2014-04-21 09:30:46 -0700
commit2da51737c49f7917a974bdf9e6e566307583ad16 (patch)
treedde4377deeea90b477a118174833c2cf343eff1a /libglusterfs/src/strfd.h
parent11473a6a10aaa5e62050e7e52115e2f8f10de124 (diff)
strfd: memory backed file descriptor
A file descriptor like interface, backed by a string, on which fprintf() like IO can be performed. Internally the backing string is grown on demand. Useful in generating virtual file content on the fly (used in meta) Change-Id: I60d8751c4c750f3f06aa454a4ccd9909b3ac8ac7 BUG: 1089216 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: http://review.gluster.org/7508 Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'libglusterfs/src/strfd.h')
-rw-r--r--libglusterfs/src/strfd.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/libglusterfs/src/strfd.h b/libglusterfs/src/strfd.h
new file mode 100644
index 00000000000..e386c8432e4
--- /dev/null
+++ b/libglusterfs/src/strfd.h
@@ -0,0 +1,28 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _STRFD_H
+#define _STRFD_H
+
+typedef struct {
+ void *data;
+ size_t alloc_size;
+ size_t size;
+ off_t pos;
+} strfd_t;
+
+strfd_t *strfd_open();
+
+int strprintf(strfd_t *strfd, const char *fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+int strfd_close(strfd_t *strfd);
+
+#endif