#include "udanax.h"
Include dependency graph for do2.cxx:

Go to the source code of this file.
Functions | |
| bool | specset2ispanset (Session *sess, typespecset specset, typeispanset *ispansetptr, int type) |
| ??? | |
| bool | tumbler2spanset (Session *sess, IStreamAddr *tumblerptr, typespanset *spansetptr) |
| ??? | |
| void | makehint (int typeabove, int typebelow, int typeofatom, IStreamAddr *isaptr, typehint *hintptr) |
| ??? | |
| void | validhint (typehint *hintptr) |
| ??? | |
| bool | acceptablevsa (Tumbler *vsaptr, typeorgl orglptr) |
| ??? | |
| bool | insertendsetsinspanf (Session *sess, typespanf spanfptr, IStreamAddr *linkisaptr, typesporglset fromsporglset, typesporglset tosporglset, typesporglset threesporglset) |
| ??? | |
| bool | insertendsetsinorgl (Session *sess, Tumbler *linkisaptr, typeorgl link, Tumbler *fromvsa, typesporglset fromsporglset, Tumbler *tovsa, typesporglset tosporglset, Tumbler *threevsa, typesporglset threesporglset) |
| ??? | |
| bool | findnextlinkvsa (Session *sess, IStreamAddr *docisaptr, Tumbler *vsaptr) |
| ??? | |
| bool | setlinkvsas (Tumbler *fromvsaptr, Tumbler *tovsaptr, Tumbler *threevsaptr) |
| ??? | |
| bool | ispansetandspecsets2spanpairset (Session *sess, typeispanset ispanset, typespecset specset1, typespecset specset2, typespanpairset *pairsetptr) |
| ??? | |
(to be defined)
Definition in file do2.cxx.
|
||||||||||||
|
??? ??? Definition at line 220 of file do2.cxx. References L. Referenced by docopy(), and docopyinternal().
00223 {
00224 L("--acceptablevsa is a NOP--\n");
00225 return true;
00226 }
|
|
||||||||||||||||
|
??? ???
Definition at line 300 of file do2.cxx. References doretrievedocvspan(), LESS, movetumbler, typespan::stream, tumbleradd, tumblerclear, tumblercmp(), tumblerincrement(), typevspan, and typespan::width. Referenced by docreatelink(), and domakelink().
00301 : User's session context 00302 IStreamAddr *docisaptr, 00303 Tumbler *vsaptr) 00304 { 00305 Tumbler vspanreach, firstlink; 00306 typevspan vspan; 00307 00308 tumblerclear(&firstlink); 00309 tumblerincrement(&firstlink, 0, 2, &firstlink); 00310 tumblerincrement(&firstlink, 1, 1, &firstlink); 00311 00312 doretrievedocvspan(sess, docisaptr, &vspan); 00313 00314 tumbleradd(&vspan.stream, &vspan.width, &vspanreach); 00315 00316 if (tumblercmp(&vspanreach, &firstlink) == LESS) 00317 movetumbler(&firstlink, vsaptr); 00318 else 00319 movetumbler(&vspanreach, vsaptr); 00320 00321 return true; 00322 } |
|
||||||||||||||||||||||||||||||||||||||||
|
??? ???
Definition at line 262 of file do2.cxx. References dumptumbler(), insertpm(), L, and typesporglset. Referenced by docreatelink(), and domakelink().
00263 : User's session context 00264 Tumbler *linkisaptr, 00265 typeorgl link, 00266 Tumbler *fromvsa, 00267 typesporglset fromsporglset, 00268 Tumbler *tovsa, 00269 typesporglset tosporglset, 00270 Tumbler *threevsa, 00271 typesporglset threesporglset) 00272 { 00273 if (!(insertpm(sess, linkisaptr, link, fromvsa, fromsporglset) 00274 && insertpm(sess, linkisaptr, link, tovsa, tosporglset))) { 00275 return false; 00276 } 00277 00278 if (threevsa && threesporglset) { 00279 if (!insertpm(sess, linkisaptr, link, threevsa, threesporglset)) 00280 return false; 00281 00282 } else { 00283 #ifndef DISTRIBUTION 00284 L("leaving INSERTENDSETSINORGL 4\n"); 00285 L(" threevsa ptr= %x threesporglset ptr = %x threesvsa = \n", (int) threevsa, (int) threesporglset); 00286 dumptumbler(threevsa); 00287 #endif 00288 } 00289 00290 return true; 00291 } |
|
||||||||||||||||||||||||||||
|
??? ???
Definition at line 235 of file do2.cxx. References insertspanf(), LINKFROMSPAN, LINKTHREESPAN, LINKTOSPAN, and typesporglset. Referenced by docreatelink(), and domakelink().
00236 : User's session context 00237 typespanf spanfptr, 00238 IStreamAddr *linkisaptr, 00239 typesporglset fromsporglset, 00240 typesporglset tosporglset, 00241 typesporglset threesporglset) 00242 { 00243 if (!(insertspanf(sess, spanfptr, linkisaptr, fromsporglset, LINKFROMSPAN) 00244 && insertspanf(sess, spanfptr, linkisaptr, tosporglset, LINKTOSPAN))) 00245 return false; 00246 00247 if (threesporglset) { 00248 if (!insertspanf(sess, spanfptr, linkisaptr, threesporglset, LINKTHREESPAN)) { 00249 return false; 00250 } 00251 } 00252 return true; 00253 } |
|
||||||||||||||||||||||||
|
??? ???
Definition at line 360 of file do2.cxx. References debug, dumpspanpairset(), foo(), L, makespanpairset(), NULL, restrictspecsetsaccordingtoispans(), typeispanset, typespanpairset, and typespecset. Referenced by doshowrelationof2versions().
00361 : User's session context 00362 typeispanset ispanset, 00363 typespecset specset1, 00364 typespecset specset2, 00365 typespanpairset *pairsetptr) 00366 { 00367 #ifndef DISTRIBUTION 00368 L("entering ispansetandspecsets2spanpairset\n"); 00369 #endif 00370 00371 if (ispanset == NULL) { 00372 *pairsetptr = NULL; 00373 00374 #ifndef DISTRIBUTION 00375 L("ispanset NULL, no relation\n"); 00376 #endif 00377 00378 } else { 00379 restrictspecsetsaccordingtoispans(sess, ispanset, &specset1, &specset2); 00380 makespanpairset(sess, ispanset, specset1, specset2, pairsetptr); 00381 00382 #ifndef DISTRIBUTION 00383 foo("after makespanpairset\n"); 00384 if (debug) 00385 dumpspanpairset(*pairsetptr); 00386 #endif 00387 00388 } 00389 00390 #ifndef DISTRIBUTION 00391 L("leaving ispansetandspecsets2spanpairset\n"); 00392 #endif 00393 00394 return true; 00395 } |
|
||||||||||||||||||||||||
|
??? ??? Definition at line 170 of file do2.cxx. References typehint::atomtype, typehint::hintisa, movetumbler, typehint::subtype, and typehint::supertype. Referenced by docreatelink(), docreatenewdocument(), docreatenewversion(), docreatenode_or_account(), doinsert(), and domakelink().
00176 {
00177 hintptr->supertype = typeabove;
00178 hintptr->subtype = typebelow;
00179 hintptr->atomtype = typeofatom;
00180
00181 movetumbler(isaptr, &hintptr->hintisa);
00182 }
|
|
||||||||||||||||
|
??? ??? Definition at line 331 of file do2.cxx. References tumblerclear, and tumblerincrement(). Referenced by docreatelink(), and domakelink().
00335 {
00336 tumblerclear(fromvsaptr);
00337 tumblerincrement(fromvsaptr, 0, 1, fromvsaptr);
00338 tumblerincrement(fromvsaptr, 1, 1, fromvsaptr);
00339
00340 tumblerclear(tovsaptr);
00341 tumblerincrement(tovsaptr, 0, 2, tovsaptr);
00342 tumblerincrement(tovsaptr, 1, 1, tovsaptr);
00343
00344 if (threevsaptr) {
00345 tumblerclear(threevsaptr);
00346 tumblerincrement(threevsaptr, 0, 3, threevsaptr);
00347 tumblerincrement(threevsaptr, 1, 1, threevsaptr);
00348 }
00349
00350 return true;
00351 }
|
|
||||||||||||||||||||
|
??? ???
Definition at line 103 of file do2.cxx. References assert, findorgl(), granf, ISPANID, iszerotumbler, L, typespan::next, NULL, typeispanset, typeorgl, typespecset, vspanset2ispanset(), and VSPECID.
00104 : User's session context 00105 typespecset specset, 00106 typeispanset *ispansetptr, 00107 int type) 00108 { 00109 //UNUSED typeispanset *save = ispansetptr; 00110 00111 *ispansetptr = NULL; 00112 for (; specset; specset = (typespec *) ((typeitemheader *) specset)->next) { 00113 00114 if (((typeitemheader *) specset)->itemid == ISPANID) { 00115 L("specset2ispanset, found an ISPANID\n"); 00116 00117 *ispansetptr = (typeispanset) specset; 00118 ispansetptr = (typeispanset *) & ((typeitemheader *) specset)->next; 00119 00120 } else if (((typeitemheader *) specset)->itemid == VSPECID) { 00121 L("specset2ispanset, found an VSPECID\n"); 00122 00123 assert(!iszerotumbler(&((typevspec *) specset)->docisa)); // ERROR: retrieve called with docisa 0 00124 00125 typeorgl docorgl; 00126 if (!(findorgl(sess, granf, &((typevspec *) specset)->docisa, &docorgl, type) /*BERT*/ 00127 && (ispansetptr = vspanset2ispanset(sess, docorgl, ((typevspec *) specset)->vspanset, ispansetptr)))) { 00128 return false; /* zzzz */ 00129 } 00130 } 00131 } 00132 return true; 00133 } |
|
||||||||||||||||
|
??? ???
Definition at line 142 of file do2.cxx. References ISPANID, typespan::itemid, movetumbler, typespan::next, NULL, typespan::stream, tumblerclear, tumblerincrement(), tumblerlength(), typespanset, and typespan::width. Referenced by docreatelink(), and domakelink().
00143 : User's session context 00144 IStreamAddr *tumblerptr, 00145 typespanset *spansetptr) 00146 { 00147 typespan *spanptr = new(sess) typespan; 00148 // typespan *spanptr = (typespan *) sess->alloc(sizeof(typespan)); 00149 00150 spanptr->next = NULL; 00151 spanptr->itemid = ISPANID; 00152 00153 movetumbler(tumblerptr, &spanptr->stream); 00154 00155 tumblerclear(&spanptr->width); 00156 tumblerincrement(&spanptr->width, tumblerlength(tumblerptr) - 1 /* zzzzz */ , 1, 00157 &spanptr->width); 00158 *spansetptr = spanptr; 00159 00160 return true; 00161 } |
|
|
??? ??? Definition at line 191 of file do2.cxx. References ACCOUNT, assert, ATOM, typehint::atomtype, DOCUMENT, NODE, typehint::subtype, and typehint::supertype.
00192 {
00193 if ((hintptr->supertype < NODE)
00194 || (hintptr->supertype > DOCUMENT)
00195 || (hintptr->subtype < ACCOUNT)
00196 || (hintptr->subtype > ATOM)
00197 || (hintptr->atomtype < 0)
00198 || (hintptr->atomtype > 2)
00199 || (hintptr->subtype < hintptr->supertype)
00200 || ((hintptr->subtype - hintptr->supertype) > 1)
00201 || ((hintptr->subtype == ATOM) == !hintptr->atomtype)) {
00202
00203 #ifndef DISTRIBUTION
00204 /* L("bad hint: supertype = %d subtype = %d atomtype = %d\n", hintptr->supertype, hintptr->subtype,
00205 * hintptr->atomtype); L("hintisa = "); puttumbler(stderr, &hintptr->hintisa); */
00206 assert(0); // bad hint
00207 #else
00208 assert(0);
00209 #endif
00210 }
00211 }
|
1.3.4