Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


You could use the LineSender program to provide sample input from a file to Odysseus.

The source code can be found here:

A runnable jar can be downloaded here:


Code Block
Usage: LineSender [-hrsV] [-d=<delay>] [-p=<port>] <path>
Sends a csv file to a tcp socket connection
      <path>            The file whose checksum to calculate.
  -d, --delay=<delay>   Delay ms between each line sent.
  -h, --help            Show this help message and exit.
  -p, --port=<port>     The server port.
  -r, --repeat          Repeat the file when ended. Default is false.
  -s, --skip            Skip the first line in csv, e.g. because of table
                          header. Default is false.
  -V, --version         Print version information and exit.

This program reads a csv CSV file and sends each csv CSV file via tcp TCP to a connected tcp TCP client. For each new connected client, the reading starts from the beginning of the file. If you set the repeat flag, the content of the csv CSV file is sent again and again to simulate a never ending input stream. You could limit the datarate data rate with the delay flag.


If you have the following csv CSV file:

Code Block

and you have started the sender on port 9876. You could use the following Odysseus query to access the content:


Here, we first check, if the new starttimestamp start timestamp is lower than the old one. This means, the input file has started from the beginning and nextRound is set to true.

Then the TIMESTAMP operator creates timestamps from the B attribute values and increases the concounter each time, nextRound is true. Here we use 10 as a maximum value.