[openi18n-im:01519] Re: CommonAux framework design/implementation

AShiZaWa KaZuNoRi <[email protected]> Wed, 24 Aug 2005 20:16:37 +0900
Newsgroups gmane.comp.internationalization.input-methods
Message-ID <[email protected]>
Hi, Phill,

Would you draw a picture to illustrate how each IIIMF components
and iiimd internal threads interacts each other?  The picture
will greatly help me and possibly others to understand your
design and concerns.

Anyway, my comments below.

Date: Wed, 24 Aug 2005 17:48:24 +0800
From: Phill Zhang <[email protected]>:
> Hi, Famao,
> 
> Sorry for this late communication. My computer was crashed due to last
> weekend's power off by the Building. I just has to set it up.
> 
> How about the Common Aux framework? Below is what I am thinking
> about this issue:
> 
> 1. IIIMP event content:
> 
> typedef struct {
> int32 event_type
> int32 param
> int32 ic_id
> const char* aux_name
> const char* im_name
> uint32 sz
> uchar* buffer
> } CommonAuxEvent;
> 
> 
> 2. iml api for IME developer on server side
> 
> void iml_aux_draw(session, CommonAuxEvent* e);

Would you explain why iml_make_aux_draw_inst() is not enough?
Or do I misunderstand?

> 
> and define a new type of IMevent for IME's call-back function.

This IME means LE?

> 
> 3. All Common Aux event comes to CommonAuxManager on the client desktop,
> I hope this CommonAuxManager's functionality could be integrated into
> the iiim-xbe, or another process
> started with X server.

If CommonAuxManager is implemented as a aux.so, then iiim-xbe
can be the manager.


> All CommonAux are started and monitored by CommonAuxManager.
> CommonAuxManager forward
> the message to the real CommonAux identified by the name. The
> communication between them
> is not iiimp related.

This is the expected behavior for aux.so.

> 
> But currently, maybe some CommonAuxObj.so is needed, which is
> responsible for:
> 1) locat/start (if not started yet) CommonAuxManager on client desktop.

Only when aux.so is loaded by iiim-xbe.


> 2) forward commonAux messages from client to CommonAuxManager
> 3) receive messages from CommonAux and send it back to client.

I've heard that the implementation will use IM_AUX_DRAW without
changes.  Then, I think that using the existing framework has no
problem and less risky.  So I'd suggest you to follow aux.so
style for this feature.  If you want other style, that may break
current IM_AUX_DRAW semantics.

> 
> We have to make sure that the starter client is of the same user who
> start the X server.

Strongly agree.  Any other aux processes also need to be own by
the desktop owner.
-- 
kasha

> 
> Under this framework, the packed CommonAuxEvent need not to be unpacked
> at CF level, neither
> need not to be unpacked by CommonAuxManager.
> 
> 
> 
> What's your idea and progress, let's disscuss it now.
> 
> Best Regards
> Phill Zhang