1//------------------------------------------------------------------------------ 2// MessageBPointItemTest.h 3// 4//------------------------------------------------------------------------------ 5 6#ifndef MESSAGEBPOINTITEMTEST_H 7#define MESSAGEBPOINTITEMTEST_H 8 9// Standard Includes ----------------------------------------------------------- 10 11// System Includes ------------------------------------------------------------- 12 13// Project Includes ------------------------------------------------------------ 14 15// Local Includes -------------------------------------------------------------- 16#include "MessageItemTest.h" 17 18// Local Defines --------------------------------------------------------------- 19 20// Globals --------------------------------------------------------------------- 21 22typedef TMessageItemFuncPolicy 23< 24 BPoint, 25 &BMessage::AddPoint, 26 &BMessage::FindPoint, 27 &BMessage::FindPoint, 28 &BMessage::FindPoint, 29 &BMessage::HasPoint, 30 &BMessage::ReplacePoint 31> 32TPointFuncPolicy; 33 34struct TPointInitPolicy : public ArrayTypeBase<BPoint> 35{ 36 inline static BPoint Zero() { return BPoint(0.0, 0.0); } 37 inline static BPoint Test1() { return BPoint(10.0, 10.0); } 38 inline static BPoint Test2() { return BPoint(20.0, 20.0); } 39 inline static size_t SizeOf(const BPoint&) { return sizeof (BPoint); } 40 inline static ArrayType Array() 41 { 42 ArrayType array; 43 array.push_back(BPoint(30.0, 30.0)); 44 array.push_back(BPoint(40.0, 40.0)); 45 array.push_back(BPoint(50.0, 50.0)); 46 return array; 47 } 48}; 49 50struct TPointAssertPolicy 51{ 52 inline static BPoint Zero() { return BPoint(0.0, 0.0); } 53 inline static BPoint Invalid() { return BPoint(0.0, 0.0); } 54 inline static bool Size(size_t size, BPoint& p) 55 { return size == sizeof (p); } 56}; 57 58typedef TMessageItemTest 59< 60 BPoint, 61 B_POINT_TYPE, 62 TPointFuncPolicy, 63 TPointInitPolicy, 64 TPointAssertPolicy 65> 66TMessageBPointItemTest; 67 68std::ostream& operator<<(std::ostream& os, const BPoint& point) 69{ 70 int precision = os.precision(); 71 os << "point(x:" << point.x << ", y:" << point.y; 72 os.precision(precision); 73 return os; 74} 75 76#endif // MESSAGEBPOINTITEMTEST_H 77 78/* 79 * $Log $ 80 * 81 * $Id $ 82 * 83 */ 84 85