render_remote.h
author Tero Marttila <terom@fixme.fi>
Tue, 17 Jun 2008 16:39:55 +0300
changeset 19 d18606bb6f20
parent 16 50995bbe442a
child 23 31307efd7e78
permissions -rw-r--r--
a working threaded sliced render, plus modifications to other modules to use this in web_main

committer: Tero Marttila <terom@fixme.fi>
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
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
8
4d38ccbeb93e * fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    15
#define RENDER_PORT_NAME "6159"
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
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
    18
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
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
 * 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
    21
 * 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
    22
 *
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
    23
 * 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
    24
 *
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
    25
 * 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
    26
 *  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
    27
 *  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
    28
 *
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
 * 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
    30
 *  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
    31
 *  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
    32
 *  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
    33
 *
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
 * 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
    35
 *  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
    36
 *  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
    37
 *
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
 * 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
    39
 *  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
    40
 *  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
    41
 *
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
 * 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
    43
 * 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
    44
 * 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
    45
 * 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
    46
 *
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
    47
 * 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
    48
 */
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
    49
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
    50
        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
    51
        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
    52
        void (*cb_sent)(void *arg),
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
        void (*cb_data)(struct evbuffer *buf, void *arg),
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
        void (*cb_done)(void *arg),
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
        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
    56
        void *cb_arg
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
);
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
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
    59
/*
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
    60
 * 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
    61
 * 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
    62
 *
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
 * 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
    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_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
    66
 *  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
    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_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
    69
 *  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
    70
 *
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
    71
 * 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
    72
 *  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
    73
 *  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
    74
 */
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
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
    76
        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
    77
        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
    78
        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
    79
        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
    80
        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
    81
        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
    82
);
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
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
    84
/*
6
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
    85
 * 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
    86
 *
7
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    87
 * 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
    88
 * called if the buffer contains at least recv_threshold bytes. Note that
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    89
 * 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
    90
 * 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
    91
 * 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
    92
 *
7
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    93
 * 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
    94
 * If the buffer contains more than recv_threshold + unread_buffer bytes, we
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    95
 * 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
    96
 * called any more.
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    97
 *
446c0b816b91 documentation bugs
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    98
 * 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
    99
 * 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
   100
 * 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
   101
 *
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
   102
 * 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
   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
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
   105
4252c27f2b72 flow control for web_main.c
Tero Marttila <terom@fixme.fi>
parents: 5
diff changeset
   106
/*
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
   107
 * 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
   108
 * 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
   109
 * 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
   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
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
   112
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
 * 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
   115
 * 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
   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
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
   118
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
   119
/*
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
 * 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
   121
 * 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
   122
 *
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
   123
 * 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
   124
 *
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
 * 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
   126
 */
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
   127
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
   128
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
   129
/*
16
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   130
 * 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
   131
 * also free the given ctx.
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   132
 */
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   133
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
   134
50995bbe442a render_multi works a bit more efficiently now
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
   135
/*
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
   136
 * 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
   137
 * 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
   138
 */
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
   139
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
   140
2
69f8c0acaac7 working web_main that uses render_remote
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   141
#endif /* RENDER_REMOTE_H */