patch temporary re-entrance problems on session creation (maybe #495)

This commit is contained in:
Fischlurch 2010-01-07 08:28:54 +01:00
parent 5cc3af3009
commit 2fd7a2f6f9
7 changed files with 27 additions and 14 deletions

View file

@ -149,7 +149,7 @@ namespace asset
StructFactoryImpl::fabricate (const Query<Track>& caps)
{
TODO ("actually extract properties/capabilities from the query...");
TODO ("make sure AssetManager detects dublicates (currently 4/08 it doesn't)");
TODO ("make sure AssetManager detects duplicates (currently 4/08 it doesn't)");
return new Track (createIdent (caps));
}

View file

@ -40,7 +40,9 @@ namespace mobject {
namespace session {
class EDL ///////////////////////////TODO is considered to be renamed as "Sequence". Should be converted to an Inteface
class EDL ///////////////////////////TICKET #152 EDL will be renamed to "Sequence".
///////////////////////////TODO: Should be converted to an facade interface
///////////////////////////TODO: what follows is dummy code and will be dropped!
{
protected:
Placement<Track> track;
@ -55,7 +57,7 @@ namespace mobject {
Placement<Track>& getTracks () { return track; } ///< @todo work out the correct use of tracks! make const correct!
size_t size ()
{
UNIMPLEMENTED ("what ist the 'size' of an EDL?");
UNIMPLEMENTED ("what is the 'size' of an EDL?");
return 0;
}

View file

@ -50,12 +50,13 @@ namespace session {
* system (and this is desirable)
*/
SessionImpl::SessionImpl ()
: Session( getDummyDefaultsManager() ), ///////TODO temporary hack
focusEDL_(0),
edls(1),
fixture(new Fixture),
pIdx_( MObject::create (getDummyDefaultsManager())) ////TODO temporary hack
: Session( getDummyDefaultsManager() ) ///////TODO temporary hack
, pIdx_( MObject::create (getDummyDefaultsManager())) ////TODO temporary hack
, focusEDL_(0)
, edls() /////////// this is dummy code. How to initialise the default session? ///////TICKET #497
, fixture(new Fixture)
{
INFO (session, "new Session created.");
}

View file

@ -78,11 +78,12 @@ namespace session {
*/
class SessionImpl : public mobject::Session
{
PlacementIndex pIdx_;
uint focusEDL_;
vector<EDL> edls;
vector<EDL> edls; /////////////////////TICKET #500
PFix fixture;
PlacementIndex pIdx_;
scoped_ptr<DefsManager> defaultsManager_; ///////////TODO: later, this will be the real defaults manager. Currently this is just never initialised (11/09)
@ -180,6 +181,11 @@ namespace session {
{
mockIndex_ = alternativeIndex;
}
protected:
ServiceAccessPoint<SessionServiceMockIndex, IMPL>()
: mockIndex_(0)
{ }
private:
PlacementIndex* mockIndex_;

View file

@ -61,8 +61,9 @@ namespace mobject
PSess sess = Session::current;
PMO clip = TestClip::create();
sess->add (clip);
ASSERT (sess->currEDL().contains (clip));
///////////////////////////////////////////////////////////////////TICKET #499
// ASSERT (sess->currEDL().contains (clip));
// TODO: Clip-Asset and Placement magic??
}
};

View file

@ -59,6 +59,9 @@ namespace mobject
run (Arg arg)
{
PSess sess = Session::current;
UNIMPLEMENTED("the real standard structure of the session"); //////////////////////////TICKET #499
ASSERT (0 <= sess->currEDL().size()); // TODO implement
ASSERT (0 <= sess->getFixture()->size()); // TODO implement
ASSERT (sess->currEDL().getTracks()->isValid());

View file

@ -4069,11 +4069,11 @@ The HighLevelModel exposes two kinds of interfaces (which are interconnected btw
Thus, there is a convenient and meaningful access path through these facade objects, which of course actually is implemented by forwarding to the actual model elements (root, bindings, tracks)
</pre>
</div>
<div title="SessionLifecycle" modifier="Ichthyostega" modified="200911090647" created="200911070329" tags="SessionLogic spec" changecount="21">
<div title="SessionLifecycle" modifier="Ichthyostega" modified="201001070433" created="200911070329" tags="SessionLogic spec" changecount="22">
<pre>The current [[Session]] is the root of any state found within Proc-Layer. Thus, events defining the session's lifecycle influence and synchronise the cooperative behaviour of the entities within the model, the ProcDispatcher, [[Fixture]] and any facility below.
* when ''starting'', on first access an empty session is created, which puts any related facility into a defined initial state.
* when ''closing'' the session, any dependent facilities are disabled, disconnected, halted or closed
* ''loading'' an existing session &amp;mdash; after closing the previous session &amp;mdash; sets up an empty (default) session an populates it with de-serialised content.
* ''loading'' an existing session &amp;mdash; after closing the previous session &amp;mdash; sets up an empty (default) session and populates it with de-serialised content.
* when encountering a ''mutation point'', [[command processing|ProcDispatcher]] is temporarily halted to trigger off an BuildProcess.
!Role of the session manager