patch temporary re-entrance problems on session creation (maybe #495)
This commit is contained in:
parent
5cc3af3009
commit
2fd7a2f6f9
7 changed files with 27 additions and 14 deletions
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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.");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -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??
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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 &mdash; after closing the previous session &mdash; sets up an empty (default) session an populates it with de-serialised content.
|
||||
* ''loading'' an existing session &mdash; after closing the previous session &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
|
||||
|
|
|
|||
Loading…
Reference in a new issue