reg_length length; typedef struct { int job; /* REG_LENGTH, implies data change too */ int length; /* New length */ } reg_length;
Sent whenever the length or data within of a contig changes. In this respect
REG_LENGTH
is a bit of a misnomer; replacing a single base within the
contig editor and then saving (which does not change the length of that
contig) will still send a REG_LENGTH
request to inform data that the
contig has changed. This is one of the most frequently sent and acknowledged
requests.
reg_query_name name; typedef struct { int job; /* REG_QUERY_NAME */ char *line; /* char[80] */ } reg_query_name;
Sent by the result_names
routine to obtain a brief one line (less than
80 characters) name of this registered item. Callback procedures should write
into the line field themselves with no need for memory allocation. The
name returned here will be used as a component of the line within the Results
Manager window. Registered data is required to handle this request, unless it
is invisible (has the REG_FLAG_INVIS
bit set).
reg_delete delete; typedef struct { int job; /* REG_DELETE */ } reg_delete;
The registered data should be removed and any associated displays should be
shutdown. This is in response to a contig being deleted (by the
io_delete_contig
function), or a programmed shutdown to force
associated displays to quit (such as when forcing the quality display to quit
when the user quits the template display). Registered data is required to
handle this request.
#define REG_LOCK_READ 1 #define REG_LOCK_WRITE 2 reg_get_lock glock; reg_set_lock slock; typedef struct { int job; /* REG_GET_LOCK */ int lock; /* Sends lock requirements, returns locks allowed */ } reg_get_lock, reg_set_lock;
Both these notifications share the same structure. The pair are used in
conjunction to determine whether exclusive write access is allowed on this
contig, and if so to set this access. This is all managed by the
contig_lock_write
function. See section Locking Mechanisms. Functions wishing to modify data, such as complement, should
use locking.