20.01.2014 Views

SIS - Application Programmatic Interface, Reference Manual - ICS ...

SIS - Application Programmatic Interface, Reference Manual - ICS ...

SIS - Application Programmatic Interface, Reference Manual - ICS ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>SIS</strong>-<strong>Application</strong> <strong>Programmatic</strong> <strong>Interface</strong>, <strong>Reference</strong> <strong>Manual</strong><br />

set_tl_cond( sessionID,FAIL(sessionID));<br />

set_fl_cond( sessionID,<br />

BELONGS( sessionID,<br />

LINK( sessionID,"PhysicalObj","Parts"),<br />

GET_CLASSES( sessionID, SET_ID( sessionID, 0))<br />

)<br />

);<br />

set_tv_cond( sessionID,<br />

OR( sessionID,<br />

EQ( sessionID,<br />

VAL(sessionID,1),<br />

CARD(sessionID,<br />

GET_LINK_TO(sessionID, SET_ID(sessionID,0))<br />

)<br />

),<br />

BELONGS( sessionID,<br />

SYS_ID(sessionID,0),<br />

SET_ID(sessionID,3)<br />

)<br />

)<br />

);<br />

6.3.6 Special recursive queries<br />

There are some recursive queries, special cases of the general recursive query, that are<br />

frequently used and are explicitly implemented for efficiency. The only condition<br />

taking into account in these queries is the category or the meta-category of the<br />

traversed links. These categories must have been defined with set_categories().<br />

When traversing is done with restricted depth, the nodes which have links that could<br />

be traversed but this didn’t happed because of the depth, are accumulated into an<br />

edge_set at the server site and can be given to the client application with the<br />

These functions return APIFail(-1) on error or the set identifier of the temporary<br />

set where the answer is stored.<br />

return_edge_node() described below.<br />

int get_traverse_by_category(int sessionID, int set_id, int isa)<br />

Before calling this query function some categories must have been defined<br />

with the set_categories() function. If set_id is 0, starts from the current node<br />

and traverses all the links whose category is one of those previously defined<br />

with the set_categories() function. With the set_depth() function the depth of<br />

traversing can be controlled. The isa argument can be any of UPWARDS,<br />

DOWNWARDS, UP_DOWN or NOISA. If UPWARDS is used, then for each node visited<br />

on traversing, all superclasses of this node are visited too. If DOWNWARDS is<br />

used, then for each node visited on traversing, all subclasses of this node are<br />

visited too. In case of UP_DOWN both all superclasses and all subclasses for<br />

each node are traversed. Nothing of these two happens when NOISA is used.<br />

The answer set contains the system identifiers of all the traversed links.<br />

If set_id is a positive integer, apply get_traverse_by_category() on each<br />

object in temporary set set_id.<br />

int get_traverse_by_meta_category(int sessionID, int set_id, int isa)<br />

August 2002/v2.2.2 -29- <strong>ICS</strong>-FORTH

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!