1
0
Fork 0

convenience functions for adding arguments by value

This commit is contained in:
Kevin Matz 2023-05-13 11:34:50 -04:00
parent 63df16831e
commit 81746d635e
2 changed files with 104 additions and 0 deletions

View File

@ -157,6 +157,100 @@ void Message::writeString(std::shared_ptr<bufferstream> buffer, const std::strin
}
/**
* @brief Message::addArgument
* @param arg
*/
void Message::addArgument(std::shared_ptr<Argument> arg)
{
arguments.push_back(arg);
}
/**
* @brief Message::addArgument
* @param val
*/
void Message::addArgument(const int32_t val)
{
arguments.emplace_back(std::make_shared<OSC::int32>(val));
}
/**
* @brief Message::addArgument
* @param val
*/
void Message::addArgument(const float val)
{
arguments.emplace_back(std::make_shared<OSC::float32>(val));
}
/**
* @brief Message::addArgument
* @param str
*/
void Message::addArgument(const std::string str)
{
arguments.emplace_back(std::make_shared<OSC::string>(str));
}
/**
* @brief Message::addArgument
* @param blob
* @param size
*/
void Message::addArgument(const uint8_t *blob, size_t size)
{
arguments.emplace_back(std::make_shared<OSC::blob>(blob, size));
}
/**
* @brief Message::addArgument
* @param val
*/
void Message::addArgument(const int64_t val)
{
arguments.emplace_back(std::make_shared<OSC::int64>(val));
}
/**
* @brief Message::addArgument
* @param val
*/
void Message::addArgument(const double val)
{
arguments.emplace_back(std::make_shared<OSC::float64>(val));
}
/**
* @brief Message::addArgument
* @param val
*/
void Message::addArgument(const char val)
{
arguments.emplace_back(std::make_shared<OSC::character>(val));
}
/**
* @brief Message::addArgument
* @param state
*/
void Message::addArgument(const bool state)
{
if (state)
arguments.emplace_back(std::make_shared<OSC::True>());
else
arguments.emplace_back(std::make_shared<OSC::False>());
}
size_t Message::streamSize() const
{
size_t address_size = address_pattern.size(); // character count

View File

@ -46,6 +46,16 @@ struct Message
static void readString(std::shared_ptr<bufferstream> buffer, std::string &string);
static void writeString(std::shared_ptr<bufferstream> buffer, const std::string &string);
void addArgument(std::shared_ptr<Argument> arg);
void addArgument(const int32_t val); // i
void addArgument(const float val); // f
void addArgument(const std::string str); // s
void addArgument(const uint8_t *blob, size_t size); // b
void addArgument(const int64_t val); // h
void addArgument(const double val); // d
void addArgument(const char val); // c
void addArgument(const bool state); // T, F
virtual size_t streamSize() const override;
virtual void iStream(std::shared_ptr<bufferstream>) override;
virtual void oStream(std::shared_ptr<bufferstream>) const override;