76 return util::isSameObject (d1, d2);
109 verify_trackingMechanism();
110 verify_integration();
115 verify_trackingMechanism()
120 typedef Dummy AutoRegisteringDummy;
124 DummyRegistry trackedDummies;
126 CHECK (0 == checksum);
127 CHECK (0 == trackedDummies.size());
129 AutoRegisteringDummy::setRegistryInstance (trackedDummies);
130 PDummy dummy1 = AutoRegisteringDummy::create();
131 PDummy dummy2 = AutoRegisteringDummy::create();
133 CHECK (2 == trackedDummies.size());
134 CHECK (dummy1 == trackedDummies[0]);
135 CHECK (dummy2 == trackedDummies[1]);
137 PDummy dummy3 = AutoRegisteringDummy::create();
138 CHECK (3 == trackedDummies.size());
139 CHECK (dummy3 == trackedDummies[2]);
141 CHECK (1+2+3 == checksum);
144 CHECK (1 + 3 == checksum);
145 CHECK (2 == trackedDummies.size());
146 CHECK (dummy1 == trackedDummies[0]);
147 CHECK (dummy3 == trackedDummies[1]);
149 CHECK (1 == dummy2.use_count());
150 CHECK (2 == dummy1.use_count());
151 CHECK (2 == dummy3.use_count());
160 CHECK (1 == trackedDummies[0].use_count());
161 CHECK (1 == trackedDummies[1].use_count());
162 CHECK (1 + 3 == checksum);
166 CHECK (0 == checksum);
177 CHECK (sess->isValid());
179 uint num_timelines = sess->
timelines.size();
180 CHECK (0 < num_timelines);
183 CHECK (specialTimeline);
184 CHECK (num_timelines + 1 == sess->
timelines.size());
185 CHECK (specialTimeline == sess->
timelines[num_timelines]);
186 CHECK (specialTimeline.use_count() == 3);
189 CHECK (num_timelines + 2 == sess->
timelines.size());
190 CHECK (specialTimeline == sess->
timelines[num_timelines]);
191 CHECK (anotherTimeline == sess->
timelines[num_timelines+1]);
194 CHECK (assetM.
known (specialTimeline->getID()));
195 assetM.
remove (specialTimeline->getID());
196 CHECK (!assetM.
known (specialTimeline->getID()));
198 CHECK (num_timelines + 1 == sess->
timelines.size());
199 CHECK (anotherTimeline == sess->
timelines[num_timelines]);
200 CHECK (specialTimeline.use_count() == 1);
202 verify_cleanup (anotherTimeline);
211 CHECK (1 < aTimeline_in_session.use_count(),
"test object should still be attached to session");
213 CHECK (1 == aTimeline_in_session.use_count(),
"session reset should have de-registered the test object");
Steam-Layer Interface: Asset Lookup and Organisation.
virtual void reset()=0
reset all session config and start with a pristine default session.
Basic and generic representation of an internal query.
Test Dummy: to be created through the inherited static create(), managed by smart-ptr.
void verify_cleanup(PTimeline const &aTimeline_in_session)
void remove(IDA id)
remove the given asset from the internal DB.
Customised refcounting smart pointer.
Facade for the Asset subsystem.
static session::SessManager & current
access point to the current Session
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
static lib::Depend< AssetManager > instance
get at the system-wide asset manager instance.
Registry for tracking object instances.
Helper mixin template for implementing a type intended to participate in automatic element tracking...
static StructFactory retrieve
storage for the static StructFactory instance
Structural building block of the session: a sequence of clips.
Simplistic test class runner.
creation, access and Session lifecycle Interface.
bool operator==(LocatingPin const &pin1, LocatingPin const &pin2)
check for equivalent definition of a complete locating chain
Tracking instances automatically on creation and disposal.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Primary Interface to the current Session.
Generic interface to express a query for specifically typed result elements exposing some capabilitie...
Top level structural element within the session.
TimelineAccess timelines
collection of timelines (top level)