libsrc/spanf2.cxx File Reference

lower-level spanfilade calls More...

#include "udanax.h"

Include dependency graph for spanf2.cxx:

Include dependency graph

Go to the source code of this file.

Functions

bool isinlinklist (typelinkset linkset, IStreamAddr *linkisaptr)
 ???

typelinkmakelinkitem (Session *sess, IStreamAddr *linkisa)
 ???

void onlinklist (Session *sess, typelinkset *linksetptr, IStreamAddr *linkisaptr)
 ???

void intersectlinksets (Session *sess, typelinkset linkset1, typelinkset linkset2, typelinkset linkset3, typelinkset *linkset4ptr)
 ???


Detailed Description

lower-level spanfilade calls

(to be defined)

Definition in file spanf2.cxx.


Function Documentation

void intersectlinksets Session sess,
typelinkset  linkset1,
typelinkset  linkset2,
typelinkset  linkset3,
typelinkset linkset4ptr
 

???

(to be defined)

Parameters:
sess  Input: User's session context

Definition at line 162 of file spanf2.cxx.

References typeaddress::address, debug, fooitemset(), L, makelinkitem(), typeaddress::next, NULL, tumblereq(), and typelinkset.

Referenced by findlinksfromtothreesp().

00163                                          : User's session context
00164     typelinkset  linkset1,
00165     typelinkset  linkset2,
00166     typelinkset  linkset3,
00167     typelinkset *linkset4ptr)
00168 {
00169     typelinkset linkset4;
00170     typelinkset temp1 = NULL;
00171     typelinkset temp2;
00172     typelinkset temp3;
00173     bool olddebug = debug;
00174 
00175 #ifndef DISTRIBUTION
00176     if (debug) {
00177         L("\nINTERSECTLINKSETS\n");
00178         fooitemset("", (typeitem *) linkset1);
00179         fooitemset("", (typeitem *) linkset2);
00180         L("inter linkset1 = %x, linkset2 = %x, linkset3 = %x\n", (int) linkset1, (int) linkset2, (int) linkset3);
00181     }
00182 #endif
00183 
00184 /* If only one linkset is non-null, then just use it */
00185     if (linkset1 && !linkset2 && !linkset3)
00186         *linkset4ptr = linkset1;
00187     else if (!linkset1 && linkset2 && !linkset3)
00188         *linkset4ptr = linkset2;
00189     else if (!linkset1 && !linkset2 && linkset3)
00190         *linkset4ptr = linkset3;
00191     else
00192         *linkset4ptr = NULL;
00193 
00194     if (*linkset4ptr) {
00195 #ifndef DISTRIBUTION
00196         if (debug) {
00197             L("*linkset4ptr = %x\n", (int) *linkset4ptr);
00198         }
00199 #endif
00200         debug = olddebug;
00201         return;
00202     }
00203 
00204 /* At least two linksets aren't null */
00205 /* If only two are, put them in temp1 and linkset2 */
00206     if (linkset1)
00207         temp1 = linkset1;
00208     if (linkset1 && !linkset2 && linkset3) {
00209         linkset2 = linkset3;
00210         linkset3 = NULL;
00211     } else if (!linkset1 && linkset2 && linkset3) {
00212         temp1 = linkset3;
00213         linkset3 = NULL;
00214     }
00215 
00216 #ifndef DISTRIBUTION
00217     if (debug) {
00218         L("temp1 = %x, linkset2 = %x, linkset3 = %x\n", (int) temp1, (int) linkset2, (int) linkset3);
00219     }
00220 #endif
00221 
00222     if (!linkset3) {
00223         for (; temp1; temp1 = temp1->next) {
00224             for (temp2 = linkset2; temp2; temp2 = temp2->next) {
00225                 if (tumblereq(&temp1->address, &temp2->address)) {
00226                     linkset4 = makelinkitem(sess, &temp1->address);
00227                     *linkset4ptr = linkset4;
00228                     linkset4ptr = &linkset4->next;
00229                 }
00230             }
00231         }
00232     } else {
00233         for (; temp1; temp1 = temp1->next) {
00234             for (temp2 = linkset2; temp2; temp2 = temp2->next) {
00235                 for (temp3 = linkset3; temp3; temp3 = temp3->next) {
00236                     if (tumblereq(&temp1->address, &temp2->address)
00237                         && tumblereq(&temp2->address, &temp3->address)) {
00238                         linkset4 = makelinkitem(sess, &temp1->address);
00239                         *linkset4ptr = linkset4;
00240                         linkset4ptr = &linkset4->next;
00241                     }
00242                 }
00243             }
00244         }
00245     }
00246     debug = olddebug;
00247 }

bool isinlinklist typelinkset  linkset,
IStreamAddr linkisaptr
 

???

(to be defined)

Definition at line 90 of file spanf2.cxx.

References typeaddress::address, typeaddress::next, tumblereq(), and typelinkset.

Referenced by finddocscontainingsp().

00093 {
00094     for (; linkset; linkset = linkset->next) {
00095         if (tumblereq(&linkset->address, linkisaptr))
00096             return true;
00097     }
00098     return false;
00099 }

typelink* makelinkitem Session sess,
IStreamAddr linkisa
[static]
 

???

(to be defined)

Parameters:
sess  Input: User's session context

Definition at line 109 of file spanf2.cxx.

References typeaddress::address, footumbler(), typeaddress::itemid, LINKID, movetumbler, typeaddress::next, NULL, and typelink.

Referenced by intersectlinksets(), and onlinklist().

00110                                          : User's session context
00111     IStreamAddr *linkisa)
00112 {
00113 #ifndef DISTRIBUTION
00114     footumbler("makelinkitem", linkisa);
00115 #endif
00116 
00117     typelink *link = new(sess) typelink;
00118     movetumbler(linkisa, &link->address);
00119     link->itemid = LINKID;
00120     link->next   = NULL;
00121     return link;
00122 }

void onlinklist Session sess,
typelinkset linksetptr,
IStreamAddr linkisaptr
 

???

(to be defined)

Parameters:
sess  Input: User's session context

Definition at line 132 of file spanf2.cxx.

References typeaddress::address, makelinkitem(), typeaddress::next, NULL, tumblereq(), typelink, and typelinkset.

Referenced by sporglset2linksetinrange().

00133                                          : User's session context
00134     typelinkset *linksetptr,
00135     IStreamAddr *linkisaptr)
00136 {
00137     typelink *linkset, *temp, *nextlink;
00138 
00139     linkset = makelinkitem(sess, linkisaptr);
00140 
00141     if (*linksetptr == NULL) {
00142         *linksetptr = linkset;
00143         return;
00144     }
00145 
00146     for (temp = *linksetptr; (nextlink = temp->next) != 0; temp = nextlink) {
00147         if (tumblereq(&temp->address, linkisaptr))
00148             return;
00149     }
00150 
00151     temp->next = linkset;
00152 }


Generated on Sun Aug 21 04:18:37 2005 for Udanax-Green by doxygen1.3.4