Declaring Process Type
Since type information is only specified once (when your application
is installed), your application needs to only declare its ptype each time
it starts.
To declare your ptype, use tt_ptype_declare during
your application's ToolTalk initialization routine. The ToolTalk service will
create the message patterns listed in your ptype and any otypes that reference
the specified ptype.
The message patterns created when you declare your ptype exist in memory
until your application exits the ToolTalk session.
Note – The message patterns created when you declare your ptype information
cannot be unregistered with tt_pattern_unregister; however,
you can unregister these patterns with tt_ptype_undeclare.
The following listing illustrates how a ptype is registered during a
program's initialization.
/*
* Initialize our ToolTalk environment.
*/
int
edit_init_tt()
{
int mark;
char *procid = tt_open();
int ttfd;
void edit_receive_tt_message();
mark = tt_mark();
if (tt_pointer_error(procid) != TT_OK) {
return 0;
}
if (tt_ptype_declare(“Sun_EditDemo”) != TT_OK) {
fprintf(stderr,”Sun_EditDemo is not an installed ptype.\n”);
return 0;
}
ttfd = tt_fd();
tt_session_join(tt_default_session());
notify_set_input_func(edit_ui_base_window,
(Notify_func)edit_receive_tt_message,
ttfd);
/*
* Note that without tt_mark() and tt_release(), the above
* combination would leak storage -- tt_default_session() returns
* a copy owned by the application, but since we don't assign the
* pointer to a variable we could not free it explicitly.
*/
tt_release(mark);
return 1;
}
|