diff options
Diffstat (limited to 'remote-processor')
-rw-r--r-- | remote-processor/RemoteCommand.h | 1 | ||||
-rw-r--r-- | remote-processor/RequestMessage.cpp | 27 | ||||
-rw-r--r-- | remote-processor/RequestMessage.h | 1 |
3 files changed, 29 insertions, 0 deletions
diff --git a/remote-processor/RemoteCommand.h b/remote-processor/RemoteCommand.h index 8409468..e55d3cb 100644 --- a/remote-processor/RemoteCommand.h +++ b/remote-processor/RemoteCommand.h @@ -43,4 +43,5 @@ public: virtual void addArgument(const std::string& strArgument) = 0; virtual uint32_t getArgumentCount() const = 0; virtual const std::string& getArgument(uint32_t uiArgument) const = 0; + virtual const std::string packArguments(uint32_t uiStartArgument, uint32_t uiNbArguments) const = 0; }; diff --git a/remote-processor/RequestMessage.cpp b/remote-processor/RequestMessage.cpp index 6f71b8a..8c6c2a3 100644 --- a/remote-processor/RequestMessage.cpp +++ b/remote-processor/RequestMessage.cpp @@ -73,6 +73,33 @@ const string& CRequestMessage::getArgument(uint32_t uiArgument) const return _argumentVector[uiArgument]; } +const string CRequestMessage::packArguments(uint32_t uiStartArgument, uint32_t uiNbArguments) const +{ + string strPackedArguments; + + assert(uiStartArgument + uiNbArguments <= _argumentVector.size()); + + // Pack arguments, separating them with a space + uint32_t uiArgument; + + bool bFirst = true; + + for (uiArgument = uiStartArgument; uiArgument < uiStartArgument + uiNbArguments; uiArgument++) { + + if (!bFirst) { + + strPackedArguments += " "; + } else { + + bFirst = false; + } + + strPackedArguments += _argumentVector[uiArgument]; + } + + return strPackedArguments; +} + // Fill data to send void CRequestMessage::fillDataToSend() { diff --git a/remote-processor/RequestMessage.h b/remote-processor/RequestMessage.h index c0b2183..8428aad 100644 --- a/remote-processor/RequestMessage.h +++ b/remote-processor/RequestMessage.h @@ -47,6 +47,7 @@ public: virtual void addArgument(const string& strArgument); virtual uint32_t getArgumentCount() const; virtual const string& getArgument(uint32_t uiArgument) const; + virtual const string packArguments(uint32_t uiStartArgument, uint32_t uiNbArguments) const; private: // Fill data to send |