85 return util::isSameObject (d1, d2);
118 verify_trackingMechanism();
119 verify_integration();
124 verify_trackingMechanism()
129 typedef Dummy AutoRegisteringDummy;
133 DummyRegistry trackedDummies;
135 CHECK (0 == checksum);
136 CHECK (0 == trackedDummies.size());
138 AutoRegisteringDummy::setRegistryInstance (trackedDummies);
139 PDummy dummy1 = AutoRegisteringDummy::create();
140 PDummy dummy2 = AutoRegisteringDummy::create();
142 CHECK (2 == trackedDummies.size());
143 CHECK (dummy1 == trackedDummies[0]);
144 CHECK (dummy2 == trackedDummies[1]);
146 PDummy dummy3 = AutoRegisteringDummy::create();
147 CHECK (3 == trackedDummies.size());
148 CHECK (dummy3 == trackedDummies[2]);
150 CHECK (1+2+3 == checksum);
153 CHECK (1 + 3 == checksum);
154 CHECK (2 == trackedDummies.size());
155 CHECK (dummy1 == trackedDummies[0]);
156 CHECK (dummy3 == trackedDummies[1]);
158 CHECK (1 == dummy2.use_count());
159 CHECK (2 == dummy1.use_count());
160 CHECK (2 == dummy3.use_count());
169 CHECK (1 == trackedDummies[0].use_count());
170 CHECK (1 == trackedDummies[1].use_count());
171 CHECK (1 + 3 == checksum);
175 CHECK (0 == checksum);
186 CHECK (sess->isValid());
188 uint num_timelines = sess->
timelines.size();
189 CHECK (0 < num_timelines);
192 CHECK (specialTimeline);
193 CHECK (num_timelines + 1 == sess->
timelines.size());
194 CHECK (specialTimeline == sess->
timelines[num_timelines]);
195 CHECK (specialTimeline.use_count() == 3);
198 CHECK (num_timelines + 2 == sess->
timelines.size());
199 CHECK (specialTimeline == sess->
timelines[num_timelines]);
200 CHECK (anotherTimeline == sess->
timelines[num_timelines+1]);
203 CHECK (assetM.
known (specialTimeline->getID()));
204 assetM.
remove (specialTimeline->getID());
205 CHECK (!assetM.
known (specialTimeline->getID()));
207 CHECK (num_timelines + 1 == sess->
timelines.size());
208 CHECK (anotherTimeline == sess->
timelines[num_timelines]);
209 CHECK (specialTimeline.use_count() == 1);
211 verify_cleanup (anotherTimeline);
220 CHECK (1 < aTimeline_in_session.use_count(),
"test object should still be attached to session");
222 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.
Simple 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)