circle-discuss
[Top][All Lists]
Advanced

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

[circle] about separation between gui and core


From: thomasV1
Subject: [circle] about separation between gui and core
Date: Mon, 5 Jan 2004 22:24:40 +0100 (MET)

Hi all,

The next big thing that is going to happen to Circle
is likely to be the separation between gui and core.
The core would run the node, and the gui is what 
the user interacts with.

I have my own ideas on how to achieve this. However
I might be wrong, so I would like to get as much feedback
as possible before starting surgery.

In my view, the separation would allow the core to run
without the gui, that is, with no visible window. If the gui
is started and no core is running, the gui might be able
to spawn the core.

This separation can be achieved by using two separate
processes that communicate through a socket (edonkey
does that). Another solution, pointed by rodrigo, is to have
one single process that would raise a gui window when needed,
and that would stay in the background after that window is closed.
This latter solution might be more efficient.

However, the big question is where to draw the separation
between gui and core. I think we should aim for maximal
flexibility. That is, it should be possible to design a gui that
does not do gossip, or one that is specialized for gossip and
does only that. Similarly, some people might want to use chat,
but not necessarily file sharing, and reciprocally...
So it should be possible to design specialized tools.

So here is my proposal:

Node would belong to the core. That is obvious.
Cache would belong to the core. That one is obvious too.
File_server would belong to the core. It might be disabled
for people who do not want to let the world see their files
while they are not there, or who do not want to share files.

So far this core looks suspiciously like the circle daemon.

What remains? Chat, Channels and Name_server.

Chat and Channels would belong to the gui. More
precisely, to a gui that has chat capability. When
the chat window is closed, these objects are not
needed anymore and they can be destroyed.
 
The question is more difficult to answer for Name_server.
It might be interesting to let Name_server run inside the core,
so that a simple command or icon can tell me which acquaintances
are online. however if the name server is always running, the
question is whether it should publish my own presence while
my chat window is closed. If not, I guess the node sould appear
as a daemon to other people while my chat window is closed.

so.... with that proposal, two things need to be done:
 1. replace the node object with a fake node that forwards requests to the
daemon.
 2. add name_server to the daemon.

comments are welcome

Thomas

-- 
+++ GMX - die erste Adresse für Mail, Message, More +++
Neu: Preissenkung für MMS und FreeMMS! http://www.gmx.net






reply via email to

[Prev in Thread] Current Thread [Next in Thread]