void Recorder::UpdateFilenames()

in rosbag_cloud_recorders/src/utils/recorder.cpp [322:358]


void Recorder::UpdateFilenames() {
    vector<string> parts;

    std::string prefix = options_.prefix;
    size_t ind = prefix.rfind(".bag");

    if (ind != std::string::npos && ind == prefix.size() - 4)
    {
      prefix.erase(ind);
    }

    if (prefix.length() > 0)
    {
        parts.push_back(prefix);
    }
    if (options_.append_date)
    {
        parts.push_back(TimeToStr(ros::WallTime::now()));
    }
    if (options_.split)
    {
        parts.push_back(boost::lexical_cast<string>(split_count_));
    }
    if (parts.empty())
    {
      throw rosbag::BagException("Bag filename is empty (neither of these was specified: prefix, append_date, split)");
    }

    target_filename_ = parts[0];
    for (unsigned int i = 1; i < parts.size(); i++)
    {
        target_filename_ += string("_") + parts[i];
    }

    target_filename_ += string(".bag");
    write_filename_ = target_filename_ + string(".active");
}