Re: Layout Manager for Nemiver - Weekly Report 01



Hello Fabien,

Thank you for your status report, and sorry for my relatively late
reply.

Fabien Parent <parent f gmail com> a écrit:

> As mentioned in my proposal, I started my first week by changing the
> architecture of the Nemiver's debugging perspective. This mean that
> most of the week I wasn't able to compile Nemiver, I succeeded to
> compile it for the first time Thursday night.

Nice.

> The change in the architecture is to put all the code managing the
> layout in a different class which will be able to be loaded and
> unloaded on the fly by a layout manager. The Layout Manager is not
> written at this moment, I'm loading staticly the layout inside the
> perspective. The work on the Layout Manager will happen next week,
> which will probably be more complex that what I have done until now.
>
> Quick overview of the layout architecture:
>                                                 ILayout
>                                                      |
>                           _______________/ \_______________
>                          /
>            \
>                         /
>             \
>                        /
>              \
>          IDBGPerspectiveLayout                      ISomeOtherPerspectiveLayout
>                 |
>                / \
>               /   \
>              /     \
>             /       \
>    Layout1    Layout2

At first, I would have preferred starting small and avoid using dynmods
for layouts.  Just having a plain old non-dynmod class hierarchy would
have been enough, I believe.

But as you have gone this way already, I guess I am okay with the idea
of just keeping the dynmods.

Incidentally, I see that ILayout is base class of IDBGPerspectiveLayout.
Why?  I mean, why not just arrange for the ILayout interface to have an
implementation (which name will not start with an I, obviously) that is
specific to the debugging perspective, and have the layout manager
manage pointers to ILayout?

I know I have the IDBGPerspective --extends--> IPerspective, but that is
because at the beginning I did a quick hack of having a Valgrind
perspective and I realized that I needed some specific interfaces there.
But then, history showed that the Valgrind perspective went nowhere and
I am thinking that the IDBGPerspective level was a mistake, as nobody is
taking advantage of that level of indirection -- the workbench only
manipulates pointers to IPerspective.  And it is apparently even
encouraging people to add even more bloat ;-)

> Note:
>  - In the code layouts are not named Layout1 and Layout2
>  - In the future the DBGPerspective will contains a Layout Manager
> which will manage layouts of type: "IDBGPerspectiveLayout"

In the light of my comment above, why not having the layout manager just
manage (smart) pointers to ILayout?

Also, is the layout manager specific to the debugging perspective?  I
would have thought that the bits specific to the debugging perspective
would be in the /implementation/ of the ILayout that is specific to the
debugging perspective.

-- 
		Dodji


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]