TSDuck v3.46-4930
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::FileNameGenerator Class Reference

#include <tsFileNameGenerator.h>

Public Member Functions

 FileNameGenerator ()=default
void initCounter (const fs::path &name_template, size_t initial_counter=0, size_t counter_width=6)
void initDateTime (const fs::path &name_template, int fields=Time::DATETIME)
fs::path newFileName ()
fs::path newFileName (const Time &time)

Detailed Description

Generate file names based on counter or dates and time.

An instance of this class is used when an application needs to generate multiple files based on a naming pattern and a counter or date and time.

Counter pattern

A name template is "base.ext". A number is automatically added to the name part so that successive files receive distinct names. Example: if the specified file name is base.ext, the various files are named base-000000.ext, base-000001.ext, etc. If the specified template already contains trailing digits, this unmodified name is used for the first file. Then, the integer part is incremented. Example: if the specified file name is base-027.ext, the various files are named base-027.ext, base-028.ext, etc.

Date & time pattern

Based on template "base.ext", the file names are base-YYYYMMDD-hhmmssmmm.ext where the date and time fields are optional, base on a ts::Time::FieldMask value.

Constructor & Destructor Documentation

◆ FileNameGenerator()

ts::FileNameGenerator::FileNameGenerator ( )
default

Constructor. The initial state is counter mode with empty file template.

Member Function Documentation

◆ initCounter()

void ts::FileNameGenerator::initCounter ( const fs::path & name_template,
size_t initial_counter = 0,
size_t counter_width = 6 )

Reinitialize the file name generator in counter mode.

Parameters
[in]name_templateFile name template.
[in]initial_counterInitial value of the counter. Ignored if name_template already contains a counter value.
[in]counter_widthWidth of the counter field in the file name. Ignored if name_template already contains a counter value.

◆ initDateTime()

void ts::FileNameGenerator::initDateTime ( const fs::path & name_template,
int fields = Time::DATETIME )

Reinitialize the file name generator in date and time mode.

Parameters
[in]name_templateFile name template.
[in]fieldsList of date and time fields to include in the file name. Ignored if name_template already contains a date and time value.
See also
Time::FieldMask

◆ newFileName() [1/2]

fs::path ts::FileNameGenerator::newFileName ( )

Generate a new file name. In counter mode, the counter is incremented in the file name. In date and time mode, the current local time is used.

Returns
A new file name.

◆ newFileName() [2/2]

fs::path ts::FileNameGenerator::newFileName ( const Time & time)

Generate a new file name with a specific date and time.

Parameters
[in]timeThe reference time to use in date and time mode. Ignored in counter mode.
Returns
A new file name.

The documentation for this class was generated from the following file: