WU Trading Library 0.2.0
A backtesting and trading strategy library
Loading...
Searching...
No Matches
readers.h File Reference
#include <stdio.h>
#include "types.h"
#include "data.h"

Go to the source code of this file.

Data Structures

struct  WU_Reader
 Base for a reader, which defines the minimal interface for reading the next data point from a data source and a method to free the reader's resources. More...
struct  WU_CsvReader
 WU_CsvReader is a concrete implementation of the WU_Reader interface that reads data from a CSV file. More...
struct  WU_JsonReader
 WU_JsonReader is a concrete implementation of the WU_Reader interface that reads data from a JSON Lines file (one valid JSON object per line). More...

Macros

#define wu_reader_next(reader)
#define wu_reader_last_error(reader)
#define wu_reader_delete(reader)
#define WU_CSV_MAX_LINE_SIZE   2048
#define WU_JSON_MAX_LINE_SIZE   4096
#define WU_READER(r)
#define wu_reader_list(...)

Enumerations

enum  WU_CsvError { WU_CSV_OK = 0 , WU_CSV_ERROR_EOF = 1 , WU_CSV_ERROR_PARSE = 2 }
enum  WU_JsonError { WU_JSON_OK = 0 , WU_JSON_ERROR_EOF = 1 , WU_JSON_ERROR_PARSE = 2 , WU_JSON_ERROR_MISSING_FIELD = 3 }

Functions

WU_CsvReader wu_csv_reader_new (FILE *file, WU_DataType data_type, WU_TimeUnit time_units, bool has_headers)
WU_JsonReader wu_json_reader_new (FILE *file, WU_DataType data_type, WU_TimeUnit time_units)

Macro Definition Documentation

◆ WU_CSV_MAX_LINE_SIZE

#define WU_CSV_MAX_LINE_SIZE   2048

Definition at line 30 of file readers.h.

◆ WU_JSON_MAX_LINE_SIZE

#define WU_JSON_MAX_LINE_SIZE   4096

Definition at line 31 of file readers.h.

◆ WU_READER

#define WU_READER ( r)
Value:
((WU_Reader)(r))

Definition at line 87 of file readers.h.

◆ wu_reader_delete

#define wu_reader_delete ( reader)
Value:
do { \
if ((reader) && ((WU_Reader)(reader))->delete) \
((WU_Reader)(reader))->delete((WU_Reader)(reader)); \
} while(0)

Definition at line 25 of file readers.h.

◆ wu_reader_last_error

#define wu_reader_last_error ( reader)
Value:
((reader)->last_error)

Definition at line 23 of file readers.h.

◆ wu_reader_list

#define wu_reader_list ( ...)
Value:
((WU_Reader[]){__VA_ARGS__, NULL})

Definition at line 88 of file readers.h.

◆ wu_reader_next

#define wu_reader_next ( reader)
Value:
(((WU_Reader)(reader))->next((WU_Reader)(reader)))

Definition at line 21 of file readers.h.

Enumeration Type Documentation

◆ WU_CsvError

Enumerator
WU_CSV_OK 
WU_CSV_ERROR_EOF 
WU_CSV_ERROR_PARSE 

Definition at line 33 of file readers.h.

◆ WU_JsonError

Enumerator
WU_JSON_OK 
WU_JSON_ERROR_EOF 
WU_JSON_ERROR_PARSE 
WU_JSON_ERROR_MISSING_FIELD 

Definition at line 39 of file readers.h.

Function Documentation

◆ wu_csv_reader_new()

WU_CsvReader wu_csv_reader_new ( FILE * file,
WU_DataType data_type,
WU_TimeUnit time_units,
bool has_headers )

Definition at line 92 of file csv.c.

◆ wu_json_reader_new()

WU_JsonReader wu_json_reader_new ( FILE * file,
WU_DataType data_type,
WU_TimeUnit time_units )

Definition at line 189 of file json.c.