#ifndef MESSAGECSTRINGITEMTEST_H
#define MESSAGECSTRINGITEMTEST_H
#include <Debug.h>
#include "MessageItemTest.h"
typedef TMessageItemFuncPolicy
<
const char*,
&BMessage::AddString,
&BMessage::FindString,
&BMessage::FindString,
&BMessage::FindString,
&BMessage::HasString,
&BMessage::ReplaceString
>
TCStringFuncPolicy;
struct TCStringInitPolicy : public ArrayTypeBase<const char*>
{
typedef const char* TypePtr;
inline static const char* Zero() { return sStr1; }
inline static const char* Test1() { return sStr2; }
inline static const char* Test2() { return sStr3; }
inline static size_t SizeOf(const char*& data) { return strlen(data) + 1; }
inline static ArrayType Array()
{
ArrayType array;
array.push_back(Zero());
array.push_back(Test1());
array.push_back(Test2());
return array;
}
private:
static const char* sStr1;
static const char* sStr2;
static const char* sStr3;
};
const char* TCStringInitPolicy::sStr1 = "";
const char* TCStringInitPolicy::sStr2 = "cstring one";
const char* TCStringInitPolicy::sStr3 = "Bibbity-bobbity-boo!";
struct TCStringAssertPolicy
{
inline static const char* Zero() { return ""; }
inline static const char* Invalid() { return ""; }
static bool Size(size_t size, const char* data)
;
};
bool TCStringAssertPolicy::Size(size_t size, const char* data)
{
return size == strlen(data) + 1;
}
struct TCStringComparePolicy
{
static bool Compare(const char* lhs, const char* rhs);
};
bool TCStringCtypedef const char* TypePtr;
omparePolicy::Compare(const char* lhs, const char* rhs)
{
if (!lhs)
return rhs;
if (!rhs)
return lhs;
return strcmp(lhs, rhs) == 0;
}
template<>
struct TypePolicy<const char*>
{
typedef const char* TypePtr;
enum { FixedSize = false };
inline const char* Dereference(TypePtr p) { return p; }
inline const char* AddressOf(const char*& t) { return t; }
};
typedef TMessageItemTest
<
const char*,
B_STRING_TYPE,
TCStringFuncPolicy,
TCStringInitPolicy,
TCStringAssertPolicy,
TCStringComparePolicy
>
TMessageCStringItemTest;
#endif
* $Log $
*
* $Id $
*
*/