diff --git a/cpp/core/payload.cc b/cpp/core/payload.cc index 0017588d..20acef85 100644 --- a/cpp/core/payload.cc +++ b/cpp/core/payload.cc @@ -33,6 +33,11 @@ Payload::Payload(ByteArray&& bytes) : content_(std::move(bytes)) {} Payload::Payload(const ByteArray& bytes) : content_(bytes) {} +Payload::Payload(InputFile file) + : content_(std::move(file)), + id_(std::hash()(file.GetFilePath())) {} + +// TODO(jfcarroll): Convert std::function to function pointer Payload::Payload(std::function stream) : content_(std::move(stream)) {} @@ -42,12 +47,12 @@ Payload::Payload(Id id, ByteArray&& bytes) Payload::Payload(Id id, const ByteArray& bytes) : content_(bytes), id_(id) {} +Payload::Payload(Id id, InputFile file) : content_(std::move(file)), id_(id) {} + +// TODO(jfcarroll): Convert std::function to function pointer Payload::Payload(Id id, std::function stream) : content_(std::move(stream)), id_(id) {} -// Constructor for incoming and outgoing file payloads. -Payload::Payload(Id id, InputFile file) : content_(std::move(file)), id_(id) {} - // Returns ByteArray payload, if it has been defined, or empty ByteArray. const ByteArray& Payload::AsBytes() const& { static const ByteArray empty; // NOLINT: function-level static is OK. diff --git a/cpp/core/payload.h b/cpp/core/payload.h index 3210b6d5..ec66062b 100644 --- a/cpp/core/payload.h +++ b/cpp/core/payload.h @@ -56,15 +56,15 @@ class DLL_API Payload { explicit Payload(ByteArray&& bytes); explicit Payload(const ByteArray& bytes); + explicit Payload(InputFile file); explicit Payload(std::function stream); // Constructors for incoming payloads. Payload(Id id, ByteArray&& bytes); Payload(Id id, const ByteArray& bytes); + Payload(Id id, InputFile file); Payload(Id id, std::function stream); - // Constructor for incoming and outgoing file payloads. - Payload(Id id, InputFile file); // Returns ByteArray payload, if it has been defined, or empty ByteArray. const ByteArray& AsBytes() const&;