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