render_remote.h
author Tero Marttila <terom@fixme.fi>
Wed, 27 Aug 2008 21:30:32 +0300
changeset 41 540737bf6bac
parent 23 31307efd7e78
permissions -rw-r--r--
sending requests, and partial support for receiving -- incomplete, not tested
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#ifndef RENDER_REMOTE_H
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
#define RENDER_REMOTE_H
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
4
49edbdf9ebe7 updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
     4
#include <event2/util.h>
49edbdf9ebe7 updated code to use libevent svn (with custom modifications, need to create a git repo for that)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
     5
#include <event2/buffer.h>
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
#include "render.h"
19
d18606bb6f20 a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents: 16
diff changeset
     8
#include "remote_pool.h"
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
/*
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    11
 * Execute a render operation on a remote render_node
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
 */
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    14
struct render_remote;
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    15
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
/*
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    17
 * Execute the given render operation on the render_node at the given remote
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    18
 * address, and buffer the data stream.
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    19
 *
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    20
 * The various callback functions must all be provided!
11
082bfaf38cf0 * massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents: 8
diff changeset
    21
 *
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    22
 * cb_sent
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    23
 *  Will be invoked once we have a pretty good guess that the render will
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    24
 *  complete succesfully.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    25
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    26
 * cb_data
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    27
 *  Will be invoked after cb_sent has been called whenever any new data has
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    28
 *  been received into our buffer, once we've buffered all the data, or after
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    29
 *  render_remote_flush.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    30
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    31
 * cb_done
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    32
 *  The request was terminated succesfully and all data has been read out of
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    33
 *  our buffer by cb_data
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    34
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    35
 * cb_fail 
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    36
 *  The request was terminated abnormally. This may happen at any time, except
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    37
 *  after cb_done has been called.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    38
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    39
 * The returned struct render_remote can be used as a handle for the control
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    40
 * functions, and it is the caller's responsibility to free it using
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    41
 * render_remote_free after cb_done/cb_fail has been called, or alternatively,
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    42
 * cancel it using render_remote_cancel.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    43
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    44
 * Returns NULL on error, or a handle on success
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
 */
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    46
struct render_remote *render_remote (
11
082bfaf38cf0 * massive structural rewrite. Split off code into several new modules (render, render_png, render_local) and updated new modules to use them.
Tero Marttila <terom@fixme.fi>
parents: 8
diff changeset
    47
        struct render *render,              // what to render
19
d18606bb6f20 a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents: 16
diff changeset
    48
        struct remote_pool *pool_info,      // pick a render node from this pool
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
        void (*cb_sent)(void *arg),
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
        void (*cb_data)(struct evbuffer *buf, void *arg),
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
        void (*cb_done)(void *arg),
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
        void (*cb_fail)(void *arg),
8
4d38ccbeb93e * fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    53
        void *cb_arg
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
);
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    56
/*
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    57
 * Execute the given render operation on the render_node at the given remote
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    58
 * address, and let the user handle the read I/O events.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    59
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    60
 * The various callback functions must all be provided!
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    61
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    62
 * cb_sent
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    63
 *  Will be called once the request has been sent.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    64
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    65
 * cb_fail
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    66
 *  Will be called if sending the request fails.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    67
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    68
 * cb_io_data
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    69
 *  Will be called once when there is data on the socket to receive. Must be
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    70
 *  re-enabled using render_remote_again each time.
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    71
 */
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    72
struct render_remote *render_remote_rawio (
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    73
        struct render *render,
19
d18606bb6f20 a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents: 16
diff changeset
    74
        struct remote_pool *pool_info, 
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    75
        void (*cb_sent)(void *arg),
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    76
        void (*cb_fail)(void *arg),
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    77
        void (*cb_io_data)(evutil_socket_t, short, void*),
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    78
        void *cb_arg
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    79
);
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    80
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    81
/*
6
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
    82
 * Controls the behaviour of when cb_data is called, and how remote data is read in.
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    83
 *
7
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    84
 * recv_threshold sets a threshold for calling cb_data - cb_data will only be
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    85
 * called if the buffer contains at least recv_threshold bytes. Note that
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    86
 * cb_data is only called once new data has been receieved from the remote end.
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    87
 * If cb_data doesn't drain the buffer, cb_data will be called again once more
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    88
 * data has been received from the remote end.
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    89
 *
7
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    90
 * unread_buffer can be used to control the amount of unread data in cb_data.
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    91
 * If the buffer contains more than recv_threshold + unread_buffer bytes, we
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    92
 * will stop accepting bytes from the remote end, and cb_data will not be
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    93
 * called any more.
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    94
 *
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    95
 * This means that there is a potential for deadlock if the buffer is full. You
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    96
 * MUST call render_remote_again once you are ready to start consuming the
7
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    97
 * buffer again.
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    98
 *
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    99
 * Only valid for normal buffered renders.
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
   100
 */
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   101
void render_remote_set_recv (struct render_remote *ctx, size_t recv_threshold, size_t unread_buffer);
6
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
   102
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
   103
/*
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   104
 * For buffered I/O, call cb_data with the current set of buffered input data
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   105
 * immediately, regardless of whether or not the buffer contains any data, or
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   106
 * any new data has been received. Only call this once cb_sent has been invoked.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   107
 */
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   108
void render_remote_flush (struct render_remote *ctx);
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   109
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   110
/*
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   111
 * For non-buffered I/O, reschedule the cb_io_data event to be called when more
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   112
 * data is received.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   113
 */
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   114
int render_remote_reschedule (struct render_remote *ctx);
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   115
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   116
/*
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   117
 * Cancel the given request. No more callbacks will be called, the ctx is freed
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   118
 * and the remote render process will cancel ASAP.
6
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
   119
 *
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   120
 * For buffered I/O, the any buffered data is discarded.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   121
 *
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   122
 * Note that you do not need to call render_remote_free after this.
6
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
   123
 */
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   124
void render_remote_cancel (struct render_remote *ctx);
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   125
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   126
/*
16
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   127
 * Mark a non-buffered custom-I/O request as succesfully completed. This will
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   128
 * also free the given ctx.
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   129
 */
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   130
void render_remote_done (struct render_remote *ctx);
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   131
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   132
/*
15
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   133
 * Free the render_remote ctx and its assoicated resources. Only valid after a
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   134
 * cb_done/cb_fail, otherwise use render_remote_cancel.
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   135
 */
e7f0697814dc added a rawio interface to render_remote, this broke render_multi.c but it needs a rewrite now anyways
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   136
void render_remote_free (struct render_remote *ctx);
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
   137
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   138
#endif /* RENDER_REMOTE_H */