blob: ecbb1e1c87880f2245c2864ac4ea29cdc21ec453 [file] [log] [blame]
/* get sort service instance */
GeneralComputingService /*tooltip,a general native computing instance*/gcsvr/*tooltip*/ = Utils.getGeneralComputingService("sort");
/* instantiate a value info object */
ValueInfo /*tooltip,an info object describes a single value or a set of values */vinfo/*tooltip*/ = new ValueInfo();
/* instantiate an object stack list */
List<long[][]> /*tooltip,a stack of object info that could be retrieved from durable objects*/objstack/*tooltip*/ = new ArrayList<long[][]>();
/* fill it up with durable object info in order */
objstack.add(this.ostack);
/* configure the field id info stack to specify which field value
need to be sorted */
long[][] /*tooltip,a stack of field info*/fidinfostack/*tooltip*/ = { {2L, 1L} };
/* assign the handler of a durable list to vinfo.handler */
vinfo.handler = this.head;
/* set a translate table from handler's memory allocator */
vinfo.transtable = m_act.getTranslateTable();
/* specify the durable type of value */
vinfo.dtype = DurableType.LONG;
/* generate an array of frame from
object info stack and field info stack */
vinfo.frames = Utils.genNativeParamForm(objstack, fidinfostack);
/* wrap a set of value info as an array */
ValueInfo[] vinfos = {vinfo};
/* perform the sorting operation,
the durable list and its value are not marshaled or un-marshaled
across native boundary */
long[] ret = gcsvr.perform("1dlong_bubble", vinfos);
/* return the handler of new head of sorted durable list */
this.head = ret[0];