blob: b6188f7fc16b165a499a1578032e22243ff04637 [file] [log] [blame]
#ifndef IMAGE_IO_BASE_STRING_REF_DATA_SOURCE_H_ // NOLINT
#define IMAGE_IO_BASE_STRING_REF_DATA_SOURCE_H_ // NOLINT
#include <string>
#include "image_io/base/data_segment_data_source.h"
namespace photos_editing_formats {
namespace image_io {
/// A DataSource that reads bytes from a string held by ref. The underlying
/// string must have a lifetime that exceeds the lifetime of this data source,
/// and the string contents must not change while the data source is referencing
/// it.
class StringRefDataSource : public DataSegmentDataSource {
public:
/// Constructs a StringRefDataSource using the given string.
/// @param string_refg The string to read from.
explicit StringRefDataSource(const std::string& string_ref);
/// Returns the string being used as the data source.
const std::string& GetStringRef() const { return string_ref_; }
private:
/// The string to read from.
const std::string& string_ref_;
};
} // namespace image_io
} // namespace photos_editing_formats
#endif // IMAGE_IO_BASE_STRING_REF_DATA_SOURCE_H_ // NOLINT