testtools/micromock/inc/mockcallargumentbase.h (43 lines of code) (raw):

// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. #ifndef MOCKCALLARGUMENTBASE_H #define MOCKCALLARGUMENTBASE_H #pragma once #include "stdafx.h" #include "mockvaluebase.h" typedef struct BUFFER_ARGUMENT_DATA_TAG { void* m_Buffer; size_t m_ByteCount; size_t m_Offset; bool operator<(_In_ const BUFFER_ARGUMENT_DATA_TAG& rhs) const { if (m_Offset < rhs.m_Offset) { return true; } if (m_Offset > rhs.m_Offset) { return false; } if (m_ByteCount < rhs.m_ByteCount) { return true; } if (m_ByteCount > rhs.m_ByteCount) { return false; } return m_Buffer < rhs.m_Buffer; } } BUFFER_ARGUMENT_DATA; class CMockCallArgumentBase { public: virtual ~CMockCallArgumentBase() {}; virtual void SetIgnored(_In_ bool ignored) = 0; virtual std::tstring ToString() const = 0; virtual bool EqualTo(_In_ const CMockCallArgumentBase* right) = 0; virtual void AddCopyOutArgumentBuffer(const void* injectedBuffer, _In_ size_t bytesToCopy, _In_ size_t byteOffset = 0) = 0; virtual void AddBufferValidation(const void* expectedBuffer, _In_ size_t bytesToValidate, _In_ size_t byteOffset = 0) = 0; virtual void CopyOutArgumentDataFrom(_In_ const CMockCallArgumentBase* sourceMockCallArgument) = 0; }; #endif // MOCKCALLARGUMENTBASE_H