Hi, this is the last though looking at refactory branch current trend. We use Gobject and private separation so structure are less exposed to external... bla bla bla. The implementation however looks to not agree with it! Usually the channel and the client (like InputsChannel and InputsChannelClient) are quite tight so each other know and access their internal. This could lead to bad encapsulation. So current status is: - single file for channel/client (beside display which is huge and split in different files); - access mostly free from one structure to another. Which is bad. So the actual transformation is: - split channel and client; - add accessors to deal with encapsulation; - move structures to headers; - change structures to Gobjects The result however from the external point of view is that users of channels include these giant headers with a lot of internal details while before in headers there were very small information, mainly you have these structures (without any types beside base class) with these methods. The most visible example of this is CursorChannel(Client). These have (currently master state) very limited header (one!) while at the end it's quite huge. Now... from the abstract point of view. Why a client of a channel have to know details on the client of the same channel? I think it's just a design mistake (at lest mostly). Back to code it's quite a mistake that channel headers include client ones, should not. Would be also better to have a kind of external interface header and a specific channel <-> specific client header to avoid exposing all accessors. Not last in C++ these stuff resolve in a bunk of lines instead of hundreds. Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel