summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-04-25 13:59:11 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-04-25 13:59:11 -0400
commite6ee37d85ac1e6fa7e2d20fc4320b89129b58ac1 (patch)
tree780df82b8252d17fbc6a6f3dc7b66ba2c6e5fb41 /include
parentdf4a000b4c97378ccadbd1f94d9f930f87228b28 (diff)
Initial support for blobs and upload
Diffstat (limited to 'include')
-rw-r--r--include/types.h13
-rw-r--r--include/urweb.h15
2 files changed, 25 insertions, 3 deletions
diff --git a/include/types.h b/include/types.h
index c80653d3..0cb81cb5 100644
--- a/include/types.h
+++ b/include/types.h
@@ -4,6 +4,10 @@ typedef long long uw_Basis_int;
typedef double uw_Basis_float;
typedef char* uw_Basis_string;
typedef time_t uw_Basis_time;
+typedef struct {
+ size_t size;
+ char *data;
+} uw_Basis_blob;
struct __uws_0 {
};
@@ -24,6 +28,15 @@ typedef struct {
unsigned cli, chn;
} uw_Basis_channel;
+typedef struct uw_Basis_file {
+ uw_Basis_string name;
+ uw_Basis_blob data;
+} uw_Basis_file;
+
+typedef struct uw_Basis_files {
+ size_t size;
+ uw_Basis_file *files;
+} uw_Basis_files;
typedef enum { SUCCESS, FATAL, BOUNDED_RETRY, UNLIMITED_RETRY } failure_kind;
diff --git a/include/urweb.h b/include/urweb.h
index 99ae3e69..4244aa6d 100644
--- a/include/urweb.h
+++ b/include/urweb.h
@@ -39,10 +39,13 @@ void uw_memstats(uw_context);
int uw_send(uw_context, int sock);
-void uw_set_input(uw_context, char *name, char *value);
+void uw_set_input(uw_context, const char *name, char *value);
char *uw_get_input(uw_context, int name);
char *uw_get_optional_input(uw_context, int name);
+void uw_set_file_input(uw_context, char *name, uw_Basis_files fs);
+uw_Basis_files uw_get_file_input(uw_context, int name);
+
void uw_write(uw_context, const char*);
uw_Basis_int uw_Basis_new_client_source(uw_context, uw_Basis_string);
@@ -101,14 +104,15 @@ uw_Basis_bool uw_Basis_unurlifyBool(uw_context, char **);
uw_Basis_time uw_Basis_unurlifyTime(uw_context, char **);
uw_Basis_string uw_Basis_strcat(uw_context, const char *, const char *);
-uw_Basis_string uw_Basis_strdup(uw_context, const char *);
-uw_Basis_string uw_Basis_maybe_strdup(uw_context, const char *);
+uw_Basis_string uw_strdup(uw_context, const char *);
+uw_Basis_string uw_maybe_strdup(uw_context, const char *);
uw_Basis_string uw_Basis_sqlifyInt(uw_context, uw_Basis_int);
uw_Basis_string uw_Basis_sqlifyFloat(uw_context, uw_Basis_float);
uw_Basis_string uw_Basis_sqlifyString(uw_context, uw_Basis_string);
uw_Basis_string uw_Basis_sqlifyBool(uw_context, uw_Basis_bool);
uw_Basis_string uw_Basis_sqlifyTime(uw_context, uw_Basis_time);
+uw_Basis_string uw_Basis_sqlifyBlob(uw_context, uw_Basis_blob);
uw_Basis_string uw_Basis_sqlifyChannel(uw_context, uw_Basis_channel);
uw_Basis_string uw_Basis_sqlifyClient(uw_context, uw_Basis_client);
@@ -157,3 +161,8 @@ uw_Basis_string uw_Basis_bless(uw_context, uw_Basis_string);
uw_Basis_string uw_unnull(uw_Basis_string);
uw_Basis_string uw_Basis_makeSigString(uw_context, uw_Basis_string);
uw_Basis_string uw_Basis_sigString(uw_context, uw_unit);
+
+uw_Basis_string uw_Basis_fileName(uw_context, uw_Basis_file);
+uw_Basis_blob uw_Basis_fileData(uw_context, uw_Basis_file);
+uw_Basis_int uw_Basis_numFiles(uw_context, uw_Basis_files);
+uw_Basis_file uw_Basis_fileNum(uw_context, uw_Basis_files, uw_Basis_int);