#ifndef _FILEHANDLER_H
#define _FILEHANDLER_H
+/**
+ * Read a text file with file pathes into medium_t struct
+ *
+ * @param input is the input file path
+ * @param pointer to an empty medium_t struct
+ */
void read_input_file(const char *input, medium_t *srcdata);
+/**
+ * Write a text file with file pathes from medium_t struct
+ *
+ * @param output is the file name
+ * @param disc is the struct with file pathes
+ */
void write_output_file(const char *output, medium_t disc);
#endif
#ifndef LIBSPANDISC_H
#define LIBSPANDISC_H
+// contains struct types
#include "spandisc.h"
+// contains spanning logic with read and write file
#include "logic.h"
+// read and write a text file
#include "filehandler.h"
+// contains splitting logic
#include "splitter.h"
#endif
#ifndef _LOGIC_H
#define _LOGIC_H
+/**
+ * Event pointer to method execute by the writing file.
+ * This Method is called by span
+ *
+ * @param output is the file name
+ * @param disc is the disc struct
+ */
void (*status_print)(const char *output, medium_t disc);
+/**
+ * Split file pathes from input file with split size into seperated
+ * output files. Output files contains the pathes fit on a media. Output files
+ * name generate with output prefix and four digit number.
+ *
+ * @param input path to the input text file
+ * @param output prefix of output files
+ * @param split size to split in bytes
+ */
void span(const char *input, const char *output, unsigned long long split);
#endif
void free_medium(medium_t *medium);
void free_collection(collection_t *col);
+/**
+ * Calc a medium from srcdata and shrink srcdata struct.
+ *
+ * @param srcdata struct with all pathes
+ *
+ * @return one splitted medium
+ */
medium_t splitter(medium_t *srcdata);
+
+/**
+ * Calc all files to big to split.
+ *
+ * @param srcdata struct with all pathes
+ *
+ * @return medium with pathes can not split
+ */
medium_t ignore(medium_t *srcdata);
+
+/**
+ * Calc all file pathes and make a medium collection
+ *
+ * @param srcdata with all file pathes
+ *
+ * @return collection with many mediums
+ */
collection_t split_all(medium_t *srcdata);
#endif