From: <ag...@us...> - 2011-09-15 20:21:54
|
Revision: 2477 http://zoolib.svn.sourceforge.net/zoolib/?rev=2477&view=rev Author: agreen Date: 2011-09-15 20:21:47 +0000 (Thu, 15 Sep 2011) Log Message: ----------- More methods taking a callable rather than an actual cog, making them easier to use in conjunction with sBind et al. Modified Paths: -------------- trunk/zoolib/source/cxx/zoolib/ZCog.h Modified: trunk/zoolib/source/cxx/zoolib/ZCog.h =================================================================== --- trunk/zoolib/source/cxx/zoolib/ZCog.h 2011-09-15 20:21:09 UTC (rev 2476) +++ trunk/zoolib/source/cxx/zoolib/ZCog.h 2011-09-15 20:21:47 UTC (rev 2477) @@ -161,15 +161,17 @@ ZCog<Param> iCog0, ZCog<Param> iCog1); template <class Param> -ZCog<Param> sCog_Either(const ZCog<Param>& iCog0, const ZCog<Param>& iCog1) +ZCog<Param> sCog_Either + (const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable0, + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable1) { - if (iCog0) + if (iCallable0) { - if (iCog1) - return sBindR(sCallable(sCogFun_Either<Param>), iCog0, iCog1); - return iCog0; + if (iCallable1) + return sBindR(sCallable(sCogFun_Either<Param>), iCallable0, iCallable1); + return iCallable0; } - return iCog1; + return iCallable1; } template <class Param> @@ -210,10 +212,12 @@ ZCog<Param> iCog0, ZCog<Param> iCog1); template <class Param> -ZCog<Param> sCog_Both(const ZCog<Param>& iCog0, const ZCog<Param>& iCog1) +ZCog<Param> sCog_Both + (const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable0, + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable1) { - if (iCog0 && iCog1) - return sBindR(sCallable(sCogFun_Both<Param>), iCog0, iCog1); + if (iCallable0 && iCallable1) + return sBindR(sCallable(sCogFun_Both<Param>), iCallable0, iCallable1); return null; } @@ -255,15 +259,17 @@ ZCog<Param> iCog0, ZCog<Param> iCog1); template <class Param> -ZCog<Param> sCog_Each(const ZCog<Param>& iCog0, const ZCog<Param>& iCog1) +ZCog<Param> sCog_Each + (const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable0, + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable1) { - if (iCog0) + if (iCallable0) { - if (iCog1) - return sBindR(sCallable(sCogFun_Each<Param>), iCog0, iCog1); - return iCog0; + if (iCallable1) + return sBindR(sCallable(sCogFun_Each<Param>), iCallable0, iCallable1); + return iCallable0; } - return iCog1; + return iCallable1; } template <class Param> @@ -392,23 +398,23 @@ template <class Param> ZCog<Param> sCog_StartAt(ZTime iSystemTime, - const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCog) - { return sCog_DelayUntil<Param>(iSystemTime) | iCog; } + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable) + { return sCog_DelayUntil<Param>(iSystemTime) | iCallable; } template <class Param> ZCog<Param> sCog_StopAt(ZTime iSystemTime, - const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCog) - { return sCog_DelayUntil<Param>(iSystemTime) * iCog; } + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCallable) + { return sCog_DelayUntil<Param>(iSystemTime) * iCallable; } template <class Param> ZCog<Param> sCog_StartAfter(double iDelay, - const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCog) - { return sCog_DelayFor<Param>(iDelay) | iCog; } + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >iCallable) + { return sCog_DelayFor<Param>(iDelay) | iCallable; } template <class Param> ZCog<Param> sCog_StopAfter(double iDelay, - const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >& iCog) - { return sCog_DelayFor<Param>(iDelay) * iCog; } + const ZRef<ZCallable<ZCog<Param>(const ZCog<Param>&,Param)> >iCallable) + { return sCog_DelayFor<Param>(iDelay) * iCallable; } } // namespace ZooLib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |