MCPcopy Create free account
hub / github.com/apache/thrift / TrackerBase

Class TrackerBase

compiler/cpp/tests/catch/catch.hpp:6059–6190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6057 };
6058
6059 class TrackerBase : public ITracker {
6060 protected:
6061 enum CycleState {
6062 NotStarted,
6063 Executing,
6064 ExecutingChildren,
6065 NeedsAnotherRun,
6066 CompletedSuccessfully,
6067 Failed
6068 };
6069 class TrackerHasName {
6070 NameAndLocation m_nameAndLocation;
6071 public:
6072 TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {}
6073 bool operator ()( Ptr<ITracker> const& tracker ) {
6074 return
6075 tracker->nameAndLocation().name == m_nameAndLocation.name &&
6076 tracker->nameAndLocation().location == m_nameAndLocation.location;
6077 }
6078 };
6079 typedef std::vector<Ptr<ITracker> > Children;
6080 NameAndLocation m_nameAndLocation;
6081 TrackerContext& m_ctx;
6082 ITracker* m_parent;
6083 Children m_children;
6084 CycleState m_runState;
6085 public:
6086 TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
6087 : m_nameAndLocation( nameAndLocation ),
6088 m_ctx( ctx ),
6089 m_parent( parent ),
6090 m_runState( NotStarted )
6091 {}
6092 virtual ~TrackerBase();
6093
6094 virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE {
6095 return m_nameAndLocation;
6096 }
6097 virtual bool isComplete() const CATCH_OVERRIDE {
6098 return m_runState == CompletedSuccessfully || m_runState == Failed;
6099 }
6100 virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
6101 return m_runState == CompletedSuccessfully;
6102 }
6103 virtual bool isOpen() const CATCH_OVERRIDE {
6104 return m_runState != NotStarted && !isComplete();
6105 }
6106 virtual bool hasChildren() const CATCH_OVERRIDE {
6107 return !m_children.empty();
6108 }
6109
6110 virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
6111 m_children.push_back( child );
6112 }
6113
6114 virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE {
6115 Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) );
6116 return( it != m_children.end() )

Callers

nothing calls this directly

Calls 5

emptyMethod · 0.80
completeCycleMethod · 0.80
closeMethod · 0.65
isCompleteMethod · 0.65

Tested by

no test coverage detected