00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef MOCKPP_CHAINABLEMOCKOBJECT_H
00031 #define MOCKPP_CHAINABLEMOCKOBJECT_H
00032
00033 #include <mockpp/mockpp.h>
00034
00035 #include <mockpp/MockObject.h>
00036
00037 #include <mockpp/chaining/ChainableMockObject_macro.h>
00038 #include <mockpp/chaining/Invocation.h>
00039 #include <mockpp/chaining/CoreMock.h>
00040 #include <mockpp/chaining/ChainingMockBuilder.h>
00041
00042 #include <mockpp/builder/ArgumentsMatchBuilder.h>
00043 #include <mockpp/builder/InvocationMockerBuilder.h>
00044 #include <mockpp/builder/BuilderNamespace.h>
00045
00046 #include <mockpp/matcher/TypelessMatcher.h>
00047
00048
00049 MOCKPP_NS_START
00050
00051
00057 class MOCKPP_API_DECL0 ChainableMockObjectBase : public BuilderNamespace
00058 {
00059 typedef MOCKPP_STL::map<String, MatchBuilderAdapterBase*> TableType;
00060 typedef MOCKPP_STL::multimap<String, InvokedRecorder*> PendingType;
00061
00062 public:
00063
00067 ChainableMockObjectBase(const String &name);
00068
00071 virtual ~ChainableMockObjectBase();
00072
00079 MatchBuilderAdapterBase *lookupID( const String &id ) const;
00080
00086 void registerUniqueID( const String &id, MatchBuilderAdapterBase *builder );
00087
00096 virtual void storeBuilder( AutoPointer<MatchBuilderAdapterBase> builder );
00097
00105 virtual void addPendingRecorder(const String &id, InvokedRecorder::AP recorder);
00106
00111 void checkPendingRecorders() const;
00112
00113 protected:
00114
00118 void chainableVerify();
00119
00123 virtual void chainableReset();
00124
00125 private:
00126
00132 void storeID( const String &id, MatchBuilderAdapterBase *builder );
00133
00134 ChainableMockObjectBase (const ChainableMockObjectBase &);
00135 ChainableMockObjectBase& operator=(ChainableMockObjectBase&);
00136
00137 MOCKPP_STL::vector<MatchBuilderAdapterBase*> allBuilders;
00138 TableType idTable;
00139 mutable PendingType pendingRecorders;
00140 };
00141
00142
00147 class MOCKPP_API_DECL0 ChainableMockObject : public MockObject
00148 , public ChainableMockObjectBase
00149 {
00150 public:
00151
00156 ChainableMockObject(const String &name, VerifiableList *parent = 0);
00157
00160 virtual ~ChainableMockObject();
00161
00165 virtual void verify();
00166
00170 virtual void reset();
00171 };
00172
00173
00174 MOCKPP_NS_END
00175
00176
00178
00179
00190 #define MOCKPP_CHAINER_FOR(clsname, methname) \
00191 clsname::ChainerFor ## methname
00192
00199 #define MOCKPP_CHAINER_FOR_EXT(clsname, m_methname, x_methname) \
00200 MOCKPP_CHAINER_FOR(clsname, m_methname ## x_methname)
00201
00203
00204
00210 #define MOCKPP_VOID_CHAINABLE0(classname, name) \
00211 public: \
00212 void name() \
00213 MOCKPP_VOID_CHAINABLE0_IMPL(classname, name, \
00214 name)
00215
00221 #define MOCKPP_VOID_CONST_CHAINABLE0(classname, name) \
00222 public: \
00223 void name() const \
00224 MOCKPP_VOID_CHAINABLE0_IMPL(classname, name, \
00225 name)
00226
00234 #define MOCKPP_VOID_CHAINABLE_EXT0(classname, m_name, \
00235 x_name) \
00236 public: \
00237 void m_name() \
00238 MOCKPP_VOID_CHAINABLE0_IMPL(classname, m_name ## x_name, \
00239 m_name)
00240
00248 #define MOCKPP_VOID_CONST_CHAINABLE_EXT0(classname, m_name, \
00249 x_name) \
00250 public: \
00251 void m_name() const \
00252 MOCKPP_VOID_CHAINABLE0_IMPL(classname, m_name ## x_name, \
00253 m_name)
00254
00256
00257
00264 #define MOCKPP_VOID_CHAINABLE1(classname, name, type1) \
00265 public: \
00266 void name(const type1 ¶m1) \
00267 MOCKPP_VOID_CHAINABLE1_IMPL(classname, name , const type1 &, \
00268 name, type1)
00269
00276 #define MOCKPP_VOID_CONST_CHAINABLE1(classname, name, type1) \
00277 public: \
00278 void name(const type1 ¶m1) const \
00279 MOCKPP_VOID_CHAINABLE1_IMPL(classname, name, const type1 &, \
00280 name, type1)
00281
00291 #define MOCKPP_VOID_CHAINABLE_EXT1(classname, m_name, m_type1, \
00292 x_name, v_type1) \
00293 public: \
00294 void m_name(m_type1 param1) \
00295 MOCKPP_VOID_CHAINABLE1_IMPL(classname, m_name ## x_name, m_type1, \
00296 m_name, v_type1)
00297
00307 #define MOCKPP_VOID_CONST_CHAINABLE_EXT1(classname, m_name, m_type1, \
00308 x_name, v_type1) \
00309 public: \
00310 void m_name(m_type1 param1) const \
00311 MOCKPP_VOID_CHAINABLE1_IMPL(classname, m_name ## x_name, m_type1, \
00312 m_name, v_type1)
00313
00315
00316
00324 #define MOCKPP_VOID_CHAINABLE2(classname, name, type1, type2) \
00325 public: \
00326 void name(const type1 ¶m1, const type2 ¶m2) \
00327 MOCKPP_VOID_CHAINABLE2_IMPL(classname, name, const type1 &, const type2 &, \
00328 name, type1, type2)
00329
00337 #define MOCKPP_VOID_CONST_CHAINABLE2(classname, name, type1, type2) \
00338 public: \
00339 void name(const type1 ¶m1, const type2 ¶m2) const \
00340 MOCKPP_VOID_CHAINABLE2_IMPL(classname, name, const type1&, const type2&, \
00341 name, type1, type2)
00342
00354 #define MOCKPP_VOID_CHAINABLE_EXT2(classname, m_name, m_type1, m_type2, \
00355 x_name, v_type1, v_type2) \
00356 public: \
00357 void m_name(m_type1 param1, m_type2 param2) \
00358 MOCKPP_VOID_CHAINABLE2_IMPL(classname, m_name ## x_name, m_type1, m_type2, \
00359 m_name, v_type1, v_type2)
00360
00372 #define MOCKPP_VOID_CONST_CHAINABLE_EXT2(classname, m_name, m_type1, m_type2, \
00373 x_name, v_type1, v_type2) \
00374 public: \
00375 void m_name(m_type1 param1, m_type2 param2) const \
00376 MOCKPP_VOID_CHAINABLE2_IMPL(classname, m_name ## x_name, m_type1, m_type2, \
00377 m_name, v_type1, v_type2)
00378
00379
00381
00382
00391 #define MOCKPP_VOID_CHAINABLE3(classname, name, type1, type2, type3) \
00392 public: \
00393 void name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3) \
00394 MOCKPP_VOID_CHAINABLE3_IMPL(classname, name, const type1 &, const type2 &, const type3 &, \
00395 name, type1, type2, type3)
00396
00405 #define MOCKPP_VOID_CONST_CHAINABLE3(classname, name, type1, type2, type3) \
00406 public: \
00407 void name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3) const \
00408 MOCKPP_VOID_CHAINABLE3_IMPL(classname, name, const type1 &, const type2 &, const type3 &, \
00409 name, type1, type2, type3)
00410
00424 #define MOCKPP_VOID_CHAINABLE_EXT3(classname, m_name, m_type1, m_type2, m_type3, \
00425 x_name, v_type1, v_type2, v_type3) \
00426 public: \
00427 void m_name(m_type1 param1, m_type2 param2, m_type3 param3) \
00428 MOCKPP_VOID_CHAINABLE3_IMPL(classname, m_name ## x_name, m_type1, m_type2, m_type3, \
00429 m_name, v_type1, v_type2, v_type3)
00430
00444 #define MOCKPP_VOID_CONST_CHAINABLE_EXT3(classname, m_name, m_type1, m_type2, m_type3, \
00445 x_name, v_type1, v_type2, v_type3) \
00446 public: \
00447 void m_name(m_type1 param1, m_type2 param2, m_type3 param3) const \
00448 MOCKPP_VOID_CHAINABLE3_IMPL(classname, m_name ## x_name, m_type1, m_type2, m_type3, \
00449 m_name, v_type1, v_type2, v_type3)
00450
00451
00453
00454
00464 #define MOCKPP_VOID_CHAINABLE4(classname, name, type1, type2, type3, type4) \
00465 public: \
00466 void name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4) \
00467 MOCKPP_VOID_CHAINABLE4_IMPL(classname, name, const type1 &, const type2 &, const type3 &, const type4 &, \
00468 name, type1, type2, type3, type4)
00469
00479 #define MOCKPP_VOID_CONST_CHAINABLE4(classname, name, type1, type2, type3, type4) \
00480 public: \
00481 void name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4) const \
00482 MOCKPP_VOID_CHAINABLE4_IMPL(classname, name, const type1 &, const type2 &, const type3 &, const type4 &, \
00483 name, type1, type2, type3, type4)
00484
00500 #define MOCKPP_VOID_CHAINABLE_EXT4(classname, m_name, m_type1, m_type2, m_type3, m_type4, \
00501 x_name, v_type1, v_type2, v_type3, v_type4) \
00502 public: \
00503 void m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4) \
00504 MOCKPP_VOID_CHAINABLE4_IMPL(classname, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, \
00505 m_name, v_type1, v_type2, v_type3, v_type4)
00506
00522 #define MOCKPP_VOID_CONST_CHAINABLE_EXT4(classname, m_name, m_type1, m_type2, m_type3, m_type4, \
00523 x_name, v_type1, v_type2, v_type3, v_type4) \
00524 public: \
00525 void m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4) const \
00526 MOCKPP_VOID_CHAINABLE4_IMPL(classname, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, \
00527 m_name, v_type1, v_type2, v_type3, v_type4)
00528
00529
00531
00532
00543 #define MOCKPP_VOID_CHAINABLE5(classname, name, type1, type2, type3, type4, type5) \
00544 public: \
00545 void name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4, const type5 ¶m5) \
00546 MOCKPP_VOID_CHAINABLE5_IMPL(classname, name, const type1 &, const type2 &, const type3 &, const type4 &, const type5 &, \
00547 name, type1, type2, type3, type4, type5)
00548
00559 #define MOCKPP_VOID_CONST_CHAINABLE5(classname, name, type1, type2, type3, type4, type5) \
00560 public: \
00561 void name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4, const type5 ¶m5) const \
00562 MOCKPP_VOID_CHAINABLE5_IMPL(classname, name, const type1 &, const type2 &, const type3 &, const type4 &, const type5 &, \
00563 name, type1, type2, type3, type4, type5)
00564
00582 #define MOCKPP_VOID_CHAINABLE_EXT5(classname, m_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
00583 x_name, v_type1, v_type2, v_type3, v_type4, v_type5) \
00584 public: \
00585 void m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4, m_type5 param5) \
00586 MOCKPP_VOID_CHAINABLE5_IMPL(classname, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
00587 m_name, v_type1, v_type2, v_type3, v_type4, v_type5)
00588
00606 #define MOCKPP_VOID_CONST_CHAINABLE_EXT5(classname, m_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
00607 x_name, v_type1, v_type2, v_type3, v_type4, v_type5) \
00608 public: \
00609 void m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4, m_type5 param5) const \
00610 MOCKPP_VOID_CHAINABLE5_IMPL(classname, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
00611 m_name, v_type1, v_type2, v_type3, v_type4, v_type5)
00612
00614
00615
00622 #define MOCKPP_CHAINABLE0(classname, ret_type, name) \
00623 public: \
00624 ret_type name() \
00625 MOCKPP_CHAINABLE0_IMPL(classname, ret_type, name, \
00626 ret_type, name)
00627
00634 #define MOCKPP_CONST_CHAINABLE0(classname, ret_type, name) \
00635 public: \
00636 ret_type name() const \
00637 MOCKPP_CHAINABLE0_IMPL(classname, ret_type, name, \
00638 ret_type, name)
00639
00649 #define MOCKPP_CHAINABLE_EXT0(classname, m_ret_type, m_name, \
00650 v_ret_type, x_name) \
00651 public: \
00652 m_ret_type m_name() \
00653 MOCKPP_CHAINABLE0_IMPL(classname, m_ret_type, m_name ## x_name, \
00654 v_ret_type, m_name)
00655
00665 #define MOCKPP_CONST_CHAINABLE_EXT0(classname, m_ret_type, m_name, \
00666 v_ret_type, x_name) \
00667 public: \
00668 m_ret_type m_name() const \
00669 MOCKPP_CHAINABLE0_IMPL(classname, m_ret_type, m_name ## x_name, \
00670 v_ret_type, m_name)
00671
00673
00674
00682 #define MOCKPP_CHAINABLE1(classname, ret_type, name, type1) \
00683 public: \
00684 ret_type name(const type1 ¶m1) \
00685 MOCKPP_CHAINABLE1_IMPL(classname, ret_type, name , const type1 &, \
00686 ret_type, name, type1)
00687
00695 #define MOCKPP_CONST_CHAINABLE1(classname, ret_type, name, type1) \
00696 public: \
00697 ret_type name(const type1 ¶m1) const \
00698 MOCKPP_CHAINABLE1_IMPL(classname, ret_type, name, const type1 &, \
00699 ret_type, name, type1)
00700
00712 #define MOCKPP_CHAINABLE_EXT1(classname, m_ret_type, m_name, m_type1, \
00713 v_ret_type, x_name, v_type1) \
00714 public: \
00715 m_ret_type m_name(m_type1 param1) \
00716 MOCKPP_CHAINABLE1_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, \
00717 v_ret_type, m_name, v_type1)
00718
00730 #define MOCKPP_CONST_CHAINABLE_EXT1(classname, m_ret_type, m_name, m_type1, \
00731 v_ret_type, x_name, v_type1) \
00732 public: \
00733 m_ret_type m_name(m_type1 param1) const \
00734 MOCKPP_CHAINABLE1_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, \
00735 v_ret_type, m_name, v_type1)
00736
00738
00739
00748 #define MOCKPP_CHAINABLE2(classname, ret_type, name, type1, type2) \
00749 public: \
00750 ret_type name(const type1 ¶m1, const type2 ¶m2) \
00751 MOCKPP_CHAINABLE2_IMPL(classname, ret_type, name, const type1 &, const type2 &, \
00752 ret_type, name, type1, type2)
00753
00762 #define MOCKPP_CONST_CHAINABLE2(classname, ret_type, name, type1, type2) \
00763 public: \
00764 ret_type name(const type1 ¶m1, const type2 ¶m2) const \
00765 MOCKPP_CHAINABLE2_IMPL(classname, ret_type, name, const type1 &, const type2 &, \
00766 ret_type, name, type1, type2)
00767
00781 #define MOCKPP_CHAINABLE_EXT2(classname, m_ret_type, m_name, m_type1, m_type2, \
00782 v_ret_type, x_name, v_type1, v_type2) \
00783 public: \
00784 m_ret_type m_name(m_type1 param1, m_type2 param2) \
00785 MOCKPP_CHAINABLE2_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, \
00786 v_ret_type, m_name, v_type1, v_type2)
00787
00801 #define MOCKPP_CONST_CHAINABLE_EXT2(classname, m_ret_type, m_name, m_type1, m_type2, \
00802 v_ret_type, x_name, v_type1, v_type2) \
00803 public: \
00804 m_ret_type m_name(m_type1 param1, m_type2 param2) const \
00805 MOCKPP_CHAINABLE2_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, \
00806 v_ret_type, m_name, v_type1, v_type2)
00807
00808
00810
00811
00821 #define MOCKPP_CHAINABLE3(classname, ret_type, name, type1, type2, type3) \
00822 public: \
00823 ret_type name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3) \
00824 MOCKPP_CHAINABLE3_IMPL(classname, ret_type, name, const type1 &, const type2 &, const type3 &, \
00825 ret_type, name, type1, type2, type3)
00826
00836 #define MOCKPP_CONST_CHAINABLE3(classname, ret_type, name, type1, type2, type3) \
00837 public: \
00838 ret_type name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3) const \
00839 MOCKPP_CHAINABLE3_IMPL(classname, ret_type, name, const type1 &, const type2 &, const type3 &, \
00840 ret_type, name, type1, type2, type3)
00841
00857 #define MOCKPP_CHAINABLE_EXT3(classname, m_ret_type, m_name, m_type1, m_type2, m_type3, \
00858 v_ret_type, x_name, v_type1, v_type2, v_type3) \
00859 public: \
00860 m_ret_type m_name(m_type1 param1, m_type2 param2, m_type3 param3) \
00861 MOCKPP_CHAINABLE3_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, m_type3, \
00862 v_ret_type, m_name, v_type1, v_type2, v_type3)
00863
00879 #define MOCKPP_CONST_CHAINABLE_EXT3(classname, m_ret_type, m_name, m_type1, m_type2, m_type3, \
00880 v_ret_type, x_name, v_type1, v_type2, v_type3) \
00881 public: \
00882 m_ret_type m_name(m_type1 param1, m_type2 param2, m_type3 param3) const \
00883 MOCKPP_CHAINABLE3_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, m_type3, \
00884 v_ret_type, m_name, v_type1, v_type2, v_type3)
00885
00886
00888
00889
00900 #define MOCKPP_CHAINABLE4(classname, ret_type, name, type1, type2, type3, type4) \
00901 public: \
00902 ret_type name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4) \
00903 MOCKPP_CHAINABLE4_IMPL(classname, ret_type, name, const type1 &, const type2 &, const type3 &, const type4 &, \
00904 ret_type, name, type1, type2, type3, type4)
00905
00916 #define MOCKPP_CONST_CHAINABLE4(classname, ret_type, name, type1, type2, type3, type4) \
00917 public: \
00918 ret_type name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4) const \
00919 MOCKPP_CHAINABLE4_IMPL(classname, ret_type, name, const type1 &, const type2 &, const type3 &, const type4 &, \
00920 ret_type, name, type1, type2, type3, type4)
00921
00939 #define MOCKPP_CHAINABLE_EXT4(classname, m_ret_type, m_name, m_type1, m_type2, m_type3, m_type4, \
00940 v_ret_type, x_name, v_type1, v_type2, v_type3, v_type4) \
00941 public: \
00942 m_ret_type m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4) \
00943 MOCKPP_CHAINABLE4_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, \
00944 v_ret_type, m_name, v_type1, v_type2, v_type3, v_type4)
00945
00963 #define MOCKPP_CONST_CHAINABLE_EXT4(classname, m_ret_type, m_name, m_type1, m_type2, m_type3, m_type4, \
00964 v_ret_type, x_name, v_type1, v_type2, v_type3, v_type4) \
00965 public: \
00966 m_ret_type m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4) const \
00967 MOCKPP_CHAINABLE4_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, \
00968 v_ret_type, m_name, v_type1, v_type2, v_type3, v_type4)
00969
00970
00972
00973
00985 #define MOCKPP_CHAINABLE5(classname, ret_type, name, type1, type2, type3, type4, type5) \
00986 public: \
00987 ret_type name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4, const type5 ¶m5) \
00988 MOCKPP_CHAINABLE5_IMPL(classname, ret_type, name, const type1 &, const type2 &, const type3 &, const type4 &, const type5 &, \
00989 ret_type, name, type1, type2, type3, type4, type5)
00990
01002 #define MOCKPP_CONST_CHAINABLE5(classname, ret_type, name, type1, type2, type3, type4, type5) \
01003 public: \
01004 ret_type name(const type1 ¶m1, const type2 ¶m2, const type3 ¶m3, const type4 ¶m4, const type5 ¶m5) const \
01005 MOCKPP_CHAINABLE5_IMPL(classname, ret_type, name, const type1 &, const type2 &, const type3 &, const type4 &, const type5 &, \
01006 ret_type, name, type1, type2, type3, type4, type5)
01007
01027 #define MOCKPP_CHAINABLE_EXT5(classname, m_ret_type, m_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
01028 v_ret_type, x_name, v_type1, v_type2, v_type3, v_type4, v_type5) \
01029 public: \
01030 m_ret_type m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4, m_type5 param5) \
01031 MOCKPP_CHAINABLE5_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
01032 v_ret_type, m_name, v_type1, v_type2, v_type3, v_type4, v_type5)
01033
01053 #define MOCKPP_CONST_CHAINABLE_EXT5(classname, m_ret_type, m_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
01054 v_ret_type, x_name, v_type1, v_type2, v_type3, v_type4, v_type5) \
01055 public: \
01056 m_ret_type m_name(m_type1 param1, m_type2 param2, m_type3 param3, m_type4 param4, m_type5 param5) const \
01057 MOCKPP_CHAINABLE5_IMPL(classname, m_ret_type, m_name ## x_name, m_type1, m_type2, m_type3, m_type4, m_type5, \
01058 v_ret_type, m_name, v_type1, v_type2, v_type3, v_type4, v_type5)
01059
01060
01062
01063
01068 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE0(name) \
01069 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01070
01076 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE_EXT0(m_name, x_name)\
01077 MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE0(m_name ## x_name)
01078
01079
01084 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE1(name) \
01085 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01086
01092 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE_EXT1(m_name, x_name) \
01093 MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE1(m_name ## x_name)
01094
01095
01100 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE2(name) \
01101 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01102
01108 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE_EXT2(m_name, x_name) \
01109 MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE2(m_name ## x_name)
01110
01111
01116 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE3(name) \
01117 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01118
01124 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE_EXT3(m_name, x_name) \
01125 MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE3(m_name ## x_name)
01126
01131 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE4(name) \
01132 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01133
01139 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE_EXT4(m_name, x_name) \
01140 MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE4(m_name ## x_name)
01141
01142
01147 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE5(name) \
01148 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01149
01155 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE_EXT5(m_name, x_name) \
01156 MOCKPP_CONSTRUCT_MEMBERS_FOR_VOID_CHAINABLE5(m_name ## x_name)
01157
01159
01160
01165 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE0(name) \
01166 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01167
01173 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE_EXT0(m_name, x_name)\
01174 MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE0(m_name ## x_name)
01175
01180 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE1(name) \
01181 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01182
01188 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE_EXT1(m_name, x_name) \
01189 MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE1(m_name ## x_name)
01190
01191
01196 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE2(name) \
01197 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01198
01204 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE_EXT2(m_name, x_name) \
01205 MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE2(m_name ## x_name)
01206
01207
01212 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE3(name) \
01213 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01214
01220 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE_EXT3(m_name, x_name) \
01221 MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE3(m_name ## x_name)
01222
01223
01228 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE4(name) \
01229 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01230
01236 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE_EXT4(m_name, x_name) \
01237 MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE4(m_name ## x_name)
01238
01239
01244 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE5(name) \
01245 MOCKPP_CONSTRUCT_CHAINABLE_MEMBERS(name)
01246
01252 #define MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE_EXT5(m_name, x_name) \
01253 MOCKPP_CONSTRUCT_MEMBERS_FOR_CHAINABLE5(m_name ## x_name)
01254
01255
01256 #endif // MOCKPP_CHAINABLEMOCKOBJECT_H
01257