1
0
Fork 0

optional argument value setting in constructor

This commit is contained in:
Kevin Matz 2023-05-13 11:31:26 -04:00
parent 28c7bba442
commit e1faba699e
1 changed files with 40 additions and 7 deletions

View File

@ -63,7 +63,11 @@ private:
struct int32
: Argument
{
int32() : Argument('i') {};
/**
* @brief int32
* @param v
*/
int32(int32_t v = 0) : Argument('i'), value(v) {};
virtual size_t streamSize() const override { return 4; }
virtual void iStream(std::shared_ptr<bufferstream> stream) override { *stream >> value; }
@ -79,7 +83,11 @@ struct int32
struct float32
: Argument
{
float32() : Argument('f') {};
/**
* @brief float32
* @param v
*/
float32(float v = 0) : Argument('f'), value(v) {};
virtual size_t streamSize() const override { return 4; }
virtual void iStream(std::shared_ptr<bufferstream> stream) override { *stream >> value; }
@ -95,7 +103,11 @@ struct float32
struct string
: Argument
{
string() : Argument('s') {};
/**
* @brief string
* @param s
*/
string(std::string s = "") : Argument('s'), value(s) {};
virtual size_t streamSize() const override;
virtual void iStream(std::shared_ptr<bufferstream>) override;
@ -111,7 +123,16 @@ struct string
struct blob
: Argument
{
blob() : Argument('b') {};
/**
* @brief blob
* @param blob
* @param size
*/
blob(const uint8_t *blob = nullptr, size_t size = 0) : Argument('b')
{
if (blob)
value = std::vector<uint8_t>(*blob, size);
};
virtual size_t streamSize() const override;
virtual void iStream(std::shared_ptr<bufferstream>) override;
@ -127,7 +148,11 @@ struct blob
struct int64
: Argument
{
int64() : Argument('h') {};
/**
* @brief int64
* @param v
*/
int64(int64_t v = 0) : Argument('h'), value(v) {};
virtual size_t streamSize() const override { return 8; }
virtual void iStream(std::shared_ptr<bufferstream> stream) override { *stream >> value; }
@ -168,7 +193,11 @@ struct timetag
struct float64
: Argument
{
float64() : Argument('d') {};
/**
* @brief float64
* @param v
*/
float64(double v = 0) : Argument('d'), value(v) {};
virtual size_t streamSize() const override { return 8; }
virtual void iStream(std::shared_ptr<bufferstream> stream) override { *stream >> value; }
@ -184,7 +213,11 @@ struct float64
struct character
: Argument
{
character() : Argument('c') {};
/**
* @brief character
* @param c
*/
character(char c = 0x00) : Argument('c'), value(c) {};
virtual size_t streamSize() const override { return 4; }
virtual void iStream(std::shared_ptr<bufferstream>) override;