WIP: somethings wrong.. #19
@ -66,10 +66,6 @@ size_t CommandMessage::getMinimumMessageSize() const {
|
|||||||
return MINIMUM_COMMAND_MESSAGE_SIZE;
|
return MINIMUM_COMMAND_MESSAGE_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t CommandMessage::getMaximumMessageSize() const {
|
|
||||||
return MessageQueueMessage::MAX_MESSAGE_SIZE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CommandMessage::isClearedCommandMessage() {
|
bool CommandMessage::isClearedCommandMessage() {
|
||||||
return getCommand() == CMD_NONE;
|
return getCommand() == CMD_NONE;
|
||||||
}
|
}
|
||||||
|
@ -24,11 +24,11 @@ class CommandMessage: public CommandMessageBase {
|
|||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* This is the size of a message as it is seen by the MessageQueue.
|
* This is the size of a message as it is seen by the MessageQueue.
|
||||||
|
* It can hold the CommandMessage header plus 2 4-byte parameters.
|
||||||
* 14 of the 24 available MessageQueueMessage bytes are used.
|
* 14 of the 24 available MessageQueueMessage bytes are used.
|
||||||
*/
|
*/
|
||||||
static const size_t MINIMUM_COMMAND_MESSAGE_SIZE =
|
static const size_t MINIMUM_COMMAND_MESSAGE_SIZE =
|
||||||
MessageQueueMessage::HEADER_SIZE + sizeof(Command_t) +
|
CommandMessageIF::HEADER_SIZE + 2 * sizeof(uint32_t);
|
||||||
2 * sizeof(uint32_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Constructor, does not initialize anything.
|
* Default Constructor, does not initialize anything.
|
||||||
@ -55,8 +55,6 @@ public:
|
|||||||
|
|
||||||
/** MessageQueueMessageIF functions used for minimum size check. */
|
/** MessageQueueMessageIF functions used for minimum size check. */
|
||||||
size_t getMinimumMessageSize() const override;
|
size_t getMinimumMessageSize() const override;
|
||||||
/** MessageQueueMessageIF functions used for maximum size check. */
|
|
||||||
size_t getMaximumMessageSize() const override;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the first parameter of the message
|
* Get the first parameter of the message
|
||||||
|
@ -55,10 +55,18 @@ size_t CommandMessageBase::getMessageSize() const {
|
|||||||
return internalMessage->getMessageSize();
|
return internalMessage->getMessageSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t CommandMessageBase::getMaximumMessageSize() const {
|
||||||
|
return internalMessage->getMaximumMessageSize();
|
||||||
|
}
|
||||||
|
|
||||||
MessageQueueMessageIF* CommandMessageBase::getInternalMessage() const {
|
MessageQueueMessageIF* CommandMessageBase::getInternalMessage() const {
|
||||||
return internalMessage;
|
return internalMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t CommandMessageBase::getMinimumMessageSize() const {
|
||||||
|
return MINIMUM_COMMAND_MESSAGE_BASE_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
void CommandMessageBase::setReplyRejected(ReturnValue_t reason,
|
void CommandMessageBase::setReplyRejected(ReturnValue_t reason,
|
||||||
Command_t initialCommand) {
|
Command_t initialCommand) {
|
||||||
std::memcpy(getData(), &reason, sizeof(reason));
|
std::memcpy(getData(), &reason, sizeof(reason));
|
||||||
|
@ -15,13 +15,21 @@
|
|||||||
* size checks:
|
* size checks:
|
||||||
*
|
*
|
||||||
* 1. getMinimumMessageSize()
|
* 1. getMinimumMessageSize()
|
||||||
* 2. getMaximumMessageSize()
|
|
||||||
*
|
*
|
||||||
|
* The maximum message size generally depends on the buffer size of the passed
|
||||||
|
* internal message.
|
||||||
* Don't forget to set the message size of the passed message in the concrete
|
* Don't forget to set the message size of the passed message in the concrete
|
||||||
* commandmessage implementation!
|
* commandmessage implementation!
|
||||||
*/
|
*/
|
||||||
class CommandMessageBase: public CommandMessageIF {
|
class CommandMessageBase: public CommandMessageIF {
|
||||||
public:
|
public:
|
||||||
|
//! This minimum size is derived from the interface requirement to be able
|
||||||
|
//! to set a rejected reply, which contains a returnvalue and the initial
|
||||||
|
//! command.
|
||||||
|
static constexpr size_t MINIMUM_COMMAND_MESSAGE_BASE_SIZE =
|
||||||
|
CommandMessageIF::HEADER_SIZE + sizeof(ReturnValue_t) +
|
||||||
|
sizeof(Command_t);
|
||||||
|
|
||||||
CommandMessageBase(MessageQueueMessageIF* message);
|
CommandMessageBase(MessageQueueMessageIF* message);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,6 +66,12 @@ public:
|
|||||||
virtual void setMessageSize(size_t messageSize) override;
|
virtual void setMessageSize(size_t messageSize) override;
|
||||||
virtual size_t getMessageSize() const override;
|
virtual size_t getMessageSize() const override;
|
||||||
|
|
||||||
|
//! This depends on the maximum message size of the passed internal message.
|
||||||
|
virtual size_t getMaximumMessageSize() const override;
|
||||||
|
|
||||||
|
//! Return the constant minimum message size.
|
||||||
|
virtual size_t getMinimumMessageSize() const override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A command message can be rejected and needs to offer a function
|
* A command message can be rejected and needs to offer a function
|
||||||
* to set a rejected reply
|
* to set a rejected reply
|
||||||
|
Loading…
Reference in New Issue
Block a user