diff options
Diffstat (limited to 'test/test-subsystem/TESTSubsystemBinary.cpp')
-rw-r--r-- | test/test-subsystem/TESTSubsystemBinary.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/test-subsystem/TESTSubsystemBinary.cpp b/test/test-subsystem/TESTSubsystemBinary.cpp new file mode 100644 index 0000000..540fde8 --- /dev/null +++ b/test/test-subsystem/TESTSubsystemBinary.cpp @@ -0,0 +1,64 @@ +/* +* Copyright (c) 2011-2015, Intel Corporation +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this +* list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation and/or +* other materials provided with the distribution. +* +* 3. Neither the name of the copyright holder nor the names of its contributors +* may be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#include <string.h> +#include <sstream> +#include <stdlib.h> +#include <assert.h> +#include "TESTSubsystemBinary.h" + +#define base CTESTSubsystemObject + +CTESTSubsystemBinary::CTESTSubsystemBinary(const std::string& strMappingValue, CInstanceConfigurableElement* pInstanceConfigurableElement, const CMappingContext& context) + : base(strMappingValue, pInstanceConfigurableElement, context) +{ +} + +std::string CTESTSubsystemBinary::toString(const void* pvValue, uint32_t uiSize) const +{ + std::ostringstream strStream; + uint32_t uiValue = 0; + + assert(uiSize <= sizeof(uiValue)); + + memcpy((void*)&uiValue, pvValue, uiSize); + + strStream << "0x" << std::hex << uiValue; + + return strStream.str(); +} + +void CTESTSubsystemBinary::fromString(const std::string& strValue, void* pvValue, uint32_t uiSize) +{ + uint32_t uiValue = strtoul(strValue.c_str(), NULL, 0); + + assert(uiSize <= sizeof(uiValue)); + + memcpy(pvValue, (const void*)&uiValue, uiSize); +} |