1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
/**
* Void field type for AMQP
*
* @copyright
*/
/**
* Include guard
*/
#pragma once
/**
* Dependencies
*/
#include <memory>
#include "outbuffer.h"
#include "field.h"
/**
* Set up namespace
*/
namespace AMQP
{
class VoidField : public Field
{
public:
/**
* Default constructor
*/
VoidField() = default;
/**
* Construct based on incoming data
* @param frame
*/
VoidField(InBuffer &frame) { (void)frame; }
/**
* Destructor
*/
virtual ~VoidField() = default;
/**
* Create a new instance of this object
* @return unique_ptr
*/
virtual std::unique_ptr<Field> clone() const override
{
// create a new copy of ourselves and return it
return std::unique_ptr<Field>(new VoidField);
}
/**
* Get the size this field will take when
* encoded in the AMQP wire-frame format
* @return size_t
*/
virtual size_t size() const override
{
// numeric types have no extra storage requirements
return 0;
}
/**
* Write encoded payload to the given buffer.
* @param buffer OutBuffer to write to
*/
virtual void fill(OutBuffer &buffer) const override { (void)buffer; }
/**
* Get the type ID that is used to identify this type of
* field in a field table
*/
virtual char typeID() const override
{
return 'V';
}
/**
* Output the object to a stream
* @param std::ostream
*/
virtual void output(std::ostream &stream) const override
{
// show
stream << "void()";
}
/**
* We are an void field
*
* @return true, because we are an void
*/
bool isVoid() const override
{
return true;
}
};
/**
* end namespace
*/
}
|