summaryrefslogtreecommitdiffstats
path: root/src/ufo-roof-config.h
blob: a22c84fb9b1d4b237c89625462ea6abfadcdf247 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef __UFO_ROOF_CONFIG_H
#define __UFO_ROOF_CONFIG_H

#include <glib.h>

typedef struct {
    gchar			*path;					// Location of data files for simmulation purposes (i.e. reading a sequence of files instead listening on the corresponding ports)
    guint                       first_file_number;                      // Indicates if the numbering of files starts at 0 or 1
    gchar			*protocol;				// Protocols: tcp, udp, tcp6, udp6, ...
    guint			port;					// First port
    guint			n_streams;				// Number of independent data streams (expected on sequential ports)
    guint			header_size;				// Expected size of the packet header, for dgram protocols we need at least 32-bit sequence number. Defaults to uint32_t for udp* and 0 - otherwise
    guint			payload_size;				// Expected size of TCP/UDP packet (without header)
    guint			dataset_size;				// Size of a single dataset (image, sinogram, etc.). This is real size in bytes, excluding all technical headers used in communication protocol.

//?


/*
    guint                       pixels_per_module;
    guint                       planes_per_module;
    guint                       samples_per_dataset;
*/    

    guint                       max_packets;                            // limits maximum number of packets which are read at once
    guint                       max_packet_size;                        // payload_size + header_size + ...?
    guint			buffer_size;				// How many datasets we can buffer. There is no sense to have more than 2 for odered protocols (default), but having larger number could help for UDP if significant order disturbances are expected
    guint                       network_timeout;                        // Maximum time (us) to wait for data on the socket
    


} UfoRoofConfig;

UfoRoofConfig *ufo_roof_config_new(const char *config, GError **error);
void ufo_roof_config_free(UfoRoofConfig *cfg);

#endif /* __UFO_ROOF_CONFIG_H */