Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
15.06.2014
Размер:
652.77 Кб
Скачать

 

4.3 Low-level doubly-linked list manipulation module

47

 

See also:

 

 

 

gdsl_list_map ba kward()(p. 47)

 

4.3.2.11

_gdsl

gdsl list map ba kward ( onst

 

 

 

list_t L, onst gdsl node_map_fun _t

 

 

ParseisGDSLreturnsalledComplexity:itsMAPlowonnodlastMAP-leavelsSTOP,examinatedhoflistO(nodetheF2in,lothvoidwithba-levelkwardnodethegdslUSERlist.USERorderLlistin .baDATADATAmapkward)argumentbaorderkward(). The.IfMAP(p.47)__FstopsFfunreturnstionand

Note:

 

 

 

Parameters:re USERMAPLondition:ThustlowbeFDA-levelaThenonAmaplist-emptyUser's|Lto|fun)mapdatastiongdsl. .._list_t & MAP_F != NULL.

Returns:

 

 

the rst node for whi h MAP F returns GDSL_MAP_STOP.

NULL when the parsing is done.

 

See also:

 

 

gdsl_list_map_forward()(p. 46)

_gdsl_list_t , onst

4.3.2.12

v _gdsl_list_write (

 

OUTPUToidgsl nodeFILEwrite,voidfun onstWRITE_F, FILE

WritetionComplexity:allthe.nodesAdditionnalesofofO(thelowUSER-lowlevel-levellistDATAlisttoaLargumentletoUSER. OUTPUTouldDATAbeFILE,)passedusingtoWRITE__FF.

Note:fun

 

 

PreGeneratedWRITEondition:ThuF !=JunNULL|22| 11:15:30) & OUTPUT2006 for_gdslFILEby !=DoxygenNULL.

48

 

 

gdsl Module Do umentation

 

Parameters:

 

 

 

 

 

 

L The low-level list to write.

 

 

 

 

 

WRITE

F The write fun tion.

 

 

 

 

 

OUTPUT FILE The le where to write L's nodes.

 

 

 

 

USER

DATA User's datas passed to WRITE F.

 

 

See also:

write xml()(p. 48)

 

 

 

 

 

gdsl_list_dump()(p. 48)

_gdsl_list_t

,

 

 

4.3.2.13 v id _ _list_write_xml

 

 

 

onst gdslFILEnode,voidwrite_fun( onstWRITE_F, FILE

 

 

 

OUTPUT

 

 

 

WRITEtoguagriteOUTPUTComplexity:.alltheIfWRITEnodesFnodes.FILEofO(ofaF.lowthe!=Additionnal-NULL,levellow-levellistthentoUSERlistausesLleUSERWRItointoDAOUTPUTXMLAE DAargumenF.funAFILE,)tionouldtointowritebeXMLpaL'ssednodeslanto-

Note:

 

 

 

 

Parameters:reOUTPUTWRITELOUTPUTondition:The low-FlevelFILEFILEThe|listL!=|write)toTheNULLwritefunle..tionwhere. to write L's nodes.

USER_DATA User's datas passed to WRITE_F.

See also:gdsl_list_write()dump()(p(p..47)48)

4.3.2.14 v _gdsl_list_dump _gdsl list_t , onst OUTPUToidgsl nodeFILEwrite,voidfun( _onstWRITE_F, FILE

ANULL,DumpdditionnalthenstrinternalUSERusestureWRITEstruofDAtheGeneratedtureAlowargFof-leveluanmenlowtionlistTh-levelouldtoLJunUSERtowritelistOUTPUTbe22 to11:15:30passedL'sDATAa nodesleto.2006FILE)WRITEtoforOUTPU.IfgdslWRIFby.TDoxygenE FILE!=.

4.3 Low-level doubly-linked list manipulation module

49

Note:

 

 

Parameters:reComplexity:OUTPUTLWRITEOUTPUTondition:The low-FlevelFILEO(FILEThe|listL!=|write)toTheNULLdumpfunle. tionwhere. . to write L's nodes.

 

USER_DATA User's datas passed to WRITE_F.

 

See also:

()(p.

 

gdsl_list_write

 

xml(47)(p. 48)

 

Generated on Thu Jun 22 11:15:30 2006 for gdsl by Doxygen

50

Low-level

 

 

 

 

 

gdsl Module Do umentation

4.4

doubly-linked

node manipulation

 

 

module

 

 

 

 

 

 

 

 

 

 

 

 

 

Typedefs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ typedefGDSL_int(lowgdsl-levelno oublye _linkedgdsl_nonodetypet.

 

 

 

 

 

 

 

NODE, void( _gdsl_node_map_fun _tion)( onst _gdsl_node_t

ˆ typedefGDSLv low-levelUSERdoublyDATA)-linked node mapfun

type.

 

 

 

 

 

NODE, FILE _gdsl_node_write_

_

)( onst _gdsl_node_t

Fun _tionsgdslDestrCrGDSLatenodelowa-lowlevelOUTPUTlowt doubly-levelgdsl-nolinkednodeFILE,. nodevoidallowriteUSER(vfunoid)tionDATA)type.

 

 

 

 

gdsl_element

t _gdsl_node_free

_gdsl_node_t NODE)

 

 

ˆ

 

 

oy a -level node.

get_su

( onst

_gdsl_node_t

gdsl_node_t

_gdsl_node

 

NODE)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

Get the su essor of a low-level node.

 

 

 

 

 

 

 

gdsl_

 

 

_t

_gdsl_node get_pred ( onst _gdsl_node_t

 

Get

 

 

nodepr de essor of a low-level node.

 

 

 

 

 

 

 

NODE)

 

 

 

 

t

 

gdsl

 

get_ ontent

( onst

_gdsl_-

ˆ gdsl

elemen

 

 

 

Get

the

 

of a low-levelnode.

 

 

 

 

 

 

 

 

gdsl_nodeontentSUCC)

 

 

 

 

 

 

 

 

 

 

 

node_

 

 

NODE)

 

set

su

( gdsl_node_t

NODE,

onst

_-

 

ˆ void _g

sl

node

 

 

Set the su essor of a low-lev l node.

 

 

 

NODE,

onst

_-

 

ˆ void _g sl

node

set_pred

( gdsl_node_t

 

 

gdsl_node

t PRED)

 

low-level node.

 

 

 

 

 

 

 

Set the prede essor of

 

 

 

 

 

 

 

 

 

 

 

 

 

Generated on Thu Jun 22 11:15:30 2006 for gdsl by Doxygen

 

4.4 Low-level doubly-linked node

module

51

ˆ void gdsl node set ontenmanipulation( gdsl node_t NODE, onst

 

 

gdsl_el men

t CONTENT)

 

 

 

 

 

Set the ontent of a low-level node.

 

 

 

ˆ void

gdsl node link ( gdsl_node_t NODE1, _gdsl_node_t

 

NODE2)

 

 

 

 

 

 

ˆ v

Link two low-level nodes together.

 

_gdsl_-

 

gdsl

node unlink (_gdsl_node_t NODE1,

 

noide

t NODE2)

 

 

 

 

 

 

 

Unlink two low-l vel nodes.

_gdsl_node_t NODE,

onst _-

ˆ void

gdsl node write

 

gdsl_node_write_fun _( WRITEonst_F, FILE OUTPUT_FILE, void

 

 

 

gdslnodeDATA)a ownode-levelwritenodewritefunto a xmllet. WRITE(onst _gdslF, FILEnode_t NODE, onst

ˆ USERgdslWrite

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

OUTPUT_FILE,

 

 

 

 

 

tura t(leWRITEonstinto XMLgdslF,. FILEnode_t NODE, onst _-

 

 

 

 

 

mp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df nto

 

 

 

 

 

 

 

stru

 

 

 

 

 

 

voidWriteUSERnodegdsla low-nodeDATA)writelevel no

 

 

 

 

 

 

gdsl

 

 

 

 

 

 

 

OUTPUT_FILE, void

4..44..11.1USERDumpTtypedefDATA)the internalstruDot umentationgdsle ofnodea low-level node to a le.

GDSLThisDebut4.4.nition1by.ype2lowthetypedefis-atlevfunlineoluntionsdoubly53taryint(ofopaquethislinkedlegdslmodule.nodeVariablesnode.type.h..of_thisgdslkindnodeould'ntt be dire tly used,

_gdsl_node t NODE, voidmap_fun _t)( onst Parameters:GeneratedGDSLUSERNODElowon-levelThuTheDATAdoublyJunlow-22Thlev-link11:15:30e usernodeednodedatas2006to mapmapforto.gdslpassfunUSERbytiontoDoxygenthistypefunDATA). tion.

52

 

 

 

 

 

 

 

gdsl Module Do umentation

 

Returns:

 

 

 

 

 

 

 

 

 

 

 

 

 

STOP if

 

m

st pped.

 

 

GDSL_MAP_CONT ifthemapping mustbe ontinued.

 

De nition at line 62 of le

gdsl node.h.

 

 

 

4.4.1.3

typedefgdslnodevoid(_t_NODE,gdslnodeFILEwrite_fun t)( onst

 

 

 

 

 

 

 

 

 

OUTPUT_FILE, void

 

 

 

 

 

 

 

where-linkwritetodtopassnodefunwritetotiontothisNODEwriteypefun... tion.

Parameters:GDSLUSEROUTPUTTREElow-levelUSERTheDATAdoublylowFILEDATA)-levelThe-linkedTheuserdoublynodeledatas

 

 

 

 

De nition at line 72 of le _gdsl_node.h.

 

 

 

 

.4.2 Fun tion Do umentation

 

 

4.4.2.1

gdsl

node t

gdsl node_allo (void)

 

Create a new low-level node.

 

 

 

 

 

Allo ate a new low-level node data stru ture.

Note:

 

 

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

Pre ondition:

 

 

 

 

 

 

 

nothing.

 

 

 

 

 

 

Returns:

 

llo ated low-l vel node in ase of su ess.

 

 

the newly

 

 

NULL in

ase of insu ient memory.

 

 

 

See also:

 

 

 

 

 

 

 

 

 

 

gdsl_node_free()(p. 52)

 

 

 

4.4.2.2

gdsl

t_t _gdsl_node_free (_gdsl_node_t NODE)

 

Deallo ate the lowelemen-lev node NODE.

 

 

 

 

 

stroy low-lev node.

 

 

 

 

Note:

 

 

 

Generated on Thu Jun 22 11:15:30 2006 for gdsl by Doxygen

 

 

 

O( 1 )

 

 

 

4.4 Low-level doubly-linked node manipulation module

53

 

Pre ondition:

 

 

 

 

 

 

NODE != NULL

 

 

 

 

Returns:

 

 

 

 

 

 

 

 

the ontent of NODE (without modi ation).

 

See also:

 

 

 

 

 

 

 

 

gdsl_node_allo ()(p. 52)

 

node_get_su ( onst

 

4.4.2.3

 

 

 

gdsl

 

 

 

 

_gdsl_node_t NODE)

 

 

 

Get the su essor of a low-level node.

 

Note:

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

!= NULL

 

 

 

 

 

NODE

The low-level node whi h we want to get the su essor from.

 

Parameters:

 

 

 

 

 

Returns:

 

 

 

 

 

 

 

 

the su essor of the low-lev l node NODE if NODE has a su essor.

 

 

NULL if the low-level node NODE has no su essor.

 

See also:

 

 

g t

 

. 53)

 

 

_gdsl_node_set_pred()(p. 55)

 

4.4.2.4

 

 

 

su () . 54)

 

 

 

 

gdsl

 

node_get_pred ( onst

 

 

 

_gdsl_node_t NODE)

 

 

 

Get the prede essor of a low-level node.

 

Note:

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

!= NULL

 

 

 

 

 

NODE

 

low-level node whi h we want to get the prede essor from.

Parameters:

 

 

 

 

 

 

Generated on Theu Jun 22 11:15:30 2006 for gdsl by Doxygen

 

54

 

 

 

 

 

 

gdsl Module Do umentation

 

Returns:

 

 

 

 

 

 

 

 

the prede essor of the low-level node NODE if NODE has a prede essor.

 

 

NULL if the low-level node NODE has no prede essor.

See also:

 

g t

su () . 54)3)

 

 

 

_gdsl_node_set_pred()(p. 55)

 

4.4.2.5

gdsl

element

t

gdsl_node_get_ ontent ( onst

 

 

 

gdsl node

t NODE)

 

 

 

Get the ontent of a low-level node.

 

 

Note:

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

 

!= NULL

 

 

 

 

Parameters:

 

 

 

 

 

 

 

NODE The low-level node whi h we want to get the onten from.

Returns:

 

of the low-level node NODE if NODE has a ontent.

 

 

the onten

 

 

NULL if the low-level node NODE has no ontent.

See also:

 

 

 

 

 

 

 

 

gdsl_node_set_ ontent()(p. 55)

 

4.4.2.6

v

_gdsl node

set

su (_gdsl_node_t NODE, onst

 

 

 

oidgsl_node

t SUCC)

 

 

 

Set the su essor of a low-level node.

 

 

Note:M di e the su essor of the low-level node NODE to SUCC.

 

 

Complexity: O( 1 )

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

 

!= NULL

 

 

 

 

Parameters:

lo -level node whi h want to hange the su essor from.

 

 

NODE

 

 

SUCC The new su essor of NODE.

 

See also:gdsl_node_get_su ()(p. 53)

Generated on Thu Jun 22 11:15:30 2006 for gdsl by Doxygen

 

Low-

 

el doub y-link d node manipulation module

55

 

4.4.2.7

lev

 

_gdsl

node set

pred (_gdsl_node_t NODE, onst

 

 

Set the

oidgsl_node

t PRED)

 

 

 

 

 

 

 

 

of a low-level node.

 

 

 

M di e predethe

ede essor of the low-level node NODE to PRED.

 

 

Note:

 

 

 

 

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

 

 

 

!= NULL

 

 

 

 

 

 

NODE

 

 

 

lo -level node whi h want to hange the prede essor from.

Parameters:

 

 

 

 

 

 

 

 

PRED

The new prede ssor of NODE.

 

 

 

 

gdsl_node_get_pred()(p. 53)

 

 

See also:

v id _

 

_

set_ ontent ( gdsl_node_t NODE,

4.4.2.8

 

 

 

 

o

 

 

gdsl

 

node t t CONTENT)

 

 

 

Set the ontennstof a lowelem- v node.

 

 

 

 

M di e the ontent of the low-level node NODE to CONTENT.

Note:

 

 

 

 

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

 

ODE != NULL

 

 

 

 

 

Parameters:

 

 

 

 

 

 

 

 

N DE

The low-lev l node whi h want to hange the ontent from.

 

CONTENT The new onten of NODE.

 

 

See also:

 

 

 

 

 

 

 

 

 

 

 

 

gdsl_node_get_ ontent()(p. 54)

 

 

4.4.2.9

v

 

 

_gdsl

node link (_gdsl_node_t NODE1,

 

 

 

oidgsl

 

 

NODE2)

 

 

 

two low-l vel nodes together.

 

 

 

 

Generated onsu ThessorJun 22 11:15:30 2006 for gdsl by Doxygen

After the link,

 

Link the tw

 

low-level nodes NODE1 and NODE2 together.

 

NODE1's

 

 

 

 

is NODE2 and NODE2's prede essor is NODE1.

 

56

 

 

 

 

 

 

 

gdsl Module Do umentation

 

Note:

 

 

 

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

 

 

ODE1 != NULL & NODE2 != NULL

 

 

 

Parameters:1

 

rst low-level node to link to NODE2.

 

 

 

NODE2

The se ond low-level node to link from NODE1.

 

 

 

gdsl_node_unlink()(p. 56)

 

 

 

See also:

v

_gdsl

node

unlink (_gdsl_node_t NODE1,

 

4.4.2.10

 

 

 

 

oidgsl

node

 

t NODE2)

 

 

 

 

 

wo low-level nodes.

 

 

 

 

 

 

Unlink the two low-level nodes NODE1 and NODE2. After the unlink, NODE1's

 

su ssor is NULL and NODE2's prede essor is NULL.

 

Note:

 

 

 

 

 

 

 

 

 

 

 

Complexity: O( 1 )

 

 

 

 

 

 

 

re ondition:

 

 

 

 

 

 

 

 

 

ODE1 != NULL & NODE2 != NULL

 

from NODE2.

 

Parameters:1

 

rst low-level node to

 

 

 

 

NODE2

The se ond low-level node tounlinlink from NODE1.

 

 

 

gdsl_node_link()(p. 55)

 

 

 

 

See also:

v id _

_

 

_

( onst _gdsl_node_t NODE,

4.4.2.11

 

 

 

 

onst

gdslFILEnode,voidwrite_fun

t WRITE_F, FILE

 

 

 

 

OUTPUT

 

 

 

 

 

Note:PreAWritedditionnalComplexity:ondition:thelowlow-levelUSER-levelO(nodenodeDATA1)toNODEaargumentle.to OUTPUTouldUSERbeFILE,passedDAusingtoA)WRITE__FF. fun tion.

NODE != NULL & WRITE_F != NULL & OUTPUT_FILE != NULL

Generated on Thu Jun 22 11:15:30 2006 for gdsl by Doxygen