SET setXIntersect(SET A,SET B) { SET set; void *e; if (! (A->cmp && B->cmp) ) return NULL; /* Both need a compare function */ /* Create new set */ if (! (set = setNew(A->cmp,A->ed,A->ord))) { XLOG(set); return NULL; } /* Add elements of A only */ for (e = setFirst(A); e; e = setNext(A)) if (!setContains(B,e)) setAdd(set,e); /* Add elements of B only */ for (e = setFirst(B); e; e = setNext(B)) if (!setContains(A,e)) setAdd(set,e); return set; }
// Prints out all the links, starting at the current link going // backwards void printAll(ring *r) { setFirst(r); for (int i = getLength(r); i>0; i--) { printf("%d: %s\n", i, getCurrent(r)); shiftForward(r); } }
/** * Function name StringPosRange::StringPosRange * Description constructor for class StringPosRange * @param StringPos f * @param StringPos l * @return - * @exception - * @see - */ StringPosRange::StringPosRange(StringPos f, StringPos l) { AFX_MANAGE_STATE(AfxGetStaticModuleState( )); setFirst(f); setLast(l); }
int main() { struct Employee* emps[MAXEMPS]; struct Employee* p; int i, nemps = 0; emps[nemps++] = createEmployee("Mantle", "Mickey", "Outfielder", 58); emps[nemps++] = createEmployee("Maris", "Roger", "Shortstop", 60); if (emps[nemps-1]->salary != 61) emps[nemps-1]->salary = 61; p = createEmployee("", "", "", 0); setLast(p, "Kaline"); setFirst(p, "Al"); setTitle(p, "Outfielder"); setSalary(p, 52); emps[nemps++] = p; for (i = 0; i < nemps; ++i) { printEmployee(emps[i]); putchar('\n'); free(emps[i]); } return 0; }
int sis_final_context(int context) { int i; for(i=0; i<MAX_CONTEXT; i++) if(global_ppriv[i].used && (global_ppriv[i].context == context)) break; if(i < MAX_CONTEXT){ set_t *set; unsigned int item; int retval; DRM_DEBUG("find socket %d, context = %d\n", i, context); /* Video Memory */ set = global_ppriv[i].sets[0]; retval = setFirst(set, &item); while(retval){ DRM_DEBUG("free video memory 0x%x\n", item); sis_free(item); retval = setNext(set, &item); } setDestroy(set); /* AGP Memory */ set = global_ppriv[i].sets[1]; retval = setFirst(set, &item); while(retval){ DRM_DEBUG("free agp memory 0x%x\n", item); mmFreeMem((PMemBlock)item); retval = setNext(set, &item); } setDestroy(set); global_ppriv[i].used = 0; } /* turn-off auto-flip */ /* TODO */ #if defined(SIS_STEREO) flip_final(); #endif return 1; }
int sis_final_context(struct drm_device *dev, int context) { int i; for (i = 0; i < MAX_CONTEXT; i++) { if (global_ppriv[i].used && (global_ppriv[i].context == context)) break; } if (i < MAX_CONTEXT) { set_t *set; ITEM_TYPE item; int retval; DRM_DEBUG("find socket %d, context = %d\n", i, context); /* Video Memory */ set = global_ppriv[i].sets[0]; retval = setFirst(set, &item); while (retval) { DRM_DEBUG("free video memory 0x%lx\n", item); #if defined(__linux__) && defined(CONFIG_FB_SIS) sis_free(item); #else mmFreeMem((PMemBlock) item); #endif retval = setNext(set, &item); } setDestroy(set); /* AGP Memory */ set = global_ppriv[i].sets[1]; retval = setFirst(set, &item); while (retval) { DRM_DEBUG("free agp memory 0x%lx\n", item); mmFreeMem((PMemBlock) item); retval = setNext(set, &item); } setDestroy(set); global_ppriv[i].used = 0; } return 1; }
// Assignment operator uses Set methods to centralize // the memory management work. Student &Student::operator=(const Student &rhs) { setAge(rhs.mAge); setLast(rhs.mLastName); setFirst(rhs.mFirstName); setEmail(rhs.mEmail); setSsn(rhs.mSocial); return *this; }
SET setUnion1(SET s1,SET s2) { SET set; void *e; set = setNew(s1->cmp,s1->ed,s1->ord); if (!set) { XLOG(set); return NULL; } for (e = setFirst(s1); e; e = setNext(s1)) setAdd(set,e); /* Blind copy of s1 */ for (e = setFirst(s2); e; e = setNext(s2)) setAdd(set,e); /* Call setAdd() to weed out duplicates */ return set; }
SET setUnion(SET set1,SET set2) { void *e; /* Add all elements of set2 onto set1 */ for (e = setFirst(set2); e; e = setNext(set2)) setAdd(set1,e); return set1; }
void BaseHandle::pop() { if (log) std->print_cr("Popping handle '%s': 0x%x", label, this); if (prev) { prev->next = next; } else { setFirst(next); } if (next) next->prev = prev; }
void ContactCluster::setName(const QString& p) { int firstSpace = p.indexOf(" "); if (firstSpace > 0) { setFirst(p.left(firstSpace)); setLast(p.right(p.length() - firstSpace - 1)); } else setLast(p); }
Actor::Actor(const char* name) { _timeout = UINT_LEAST64_MAX; _name = name; _state = 0; _ptLine = 0; _next = 0; if (first() == 0) { setFirst(this); } else { last()->setNext(this); } }
Node<T> List<T>::popFirst() { if (hasFirst()) { Node<T> oldFirst = *getFirst(); if (getFirst() == getLast()) { setLast(NULL); } delete getFirst(); if (oldFirst.hasNext()) { oldFirst.getNext()->setPrev(NULL); setFirst(oldFirst.getNext()); } else { setFirst(NULL); } return oldFirst; } return NULL; }
void DocumentFKController::selectInvoice() { setFirst(true); QStringList docTypeFilter; docTypeFilter << "FMP" << "FV" << "PRO"; // faktura VAT, VAT-MP, PROFORMA SelectInvoiceController dialog(view, docTypeFilter); dialog.showDialog(); Document invoice; if(dialog.getCancel() !=1) { invoice = dialog.addInvoice(); insertInvoiceData(invoice); } }
void BaseHandle::push() { next = first(); prev = NULL; if (next) { if (log) { char msg[200]; sprintf(msg, "unpopped StackHandle '%s->%s' : 0x%x->0x%x", label, next->label, this, next); assert((char*) this < (char*) next, msg); } next->prev = this; } if (log) std->print_cr("Pushing handle '%s': 0x%x", label, this); setFirst(this); }
Student::Student( const int age, const char *last_name, const char *first_name, const char *email, const char social[]) : mAge(0), mLastName(0), mFirstName(0), mEmail(0) { mSocial[0] = 0; setAge(age); setLast(last_name); setFirst(first_name); setEmail(email); setSsn(social); }
SET setDifference(SET A,SET B) { SET set; void *e; if ( ! B->cmp) return NULL; /* B needs a compare function */ /* Create the resulting set */ set = setNew(A->cmp,A->ed,A->ord); if (!set) { XLOG(set); return NULL; } for (e = setFirst(A); e; e = setNext(A)) if (!setContains(B,e)) setAdd(set,e); return set; }
void List<T>::pushLast(const T& data) { Node<T>* newLast = new Node<T>(data); if (debug) { std::cout << "DEBUG: " << "Pushing " << newLast << " to last" << std::endl; } if (hasLast()) { getLast()->setNext(newLast); newLast->setPrev(getLast()); } if (!hasFirst()) { setFirst(newLast); } setLast(newLast); }
// Loads ring with nodes containing a fake web-history. Demonstrates // both types of insert, and a backward shift. Ordered so that the most // recently visited webpage is 'first' in the linked list (but was // entered last in this). void loadRing(ring *r) { insertAfter(r, "http://www.google.com"); insertBefore(r, "https://www.google.co.uk/?gfe_rd=cr&ei=58RkVqCSEITP0wWvzrPQDg#q=what%20is%20computer%20science"); shiftBackward(r); insertBefore(r, "http://www.bbc.co.uk/guides/zxgdwmn"); shiftBackward(r); insertBefore(r, "https://www.google.co.uk/?gfe_rd=cr&ei=58RkVqCSEITP0wWvzrPQDg#q=what%20is%20computer%20science"); shiftBackward(r); insertBefore(r, "https://www.google.co.uk/?gfe_rd=cr&ei=58RkVqCSEITP0wWvzrPQDg#q=university+of+bristol+computer+science"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/Teaching/"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/Teaching/yearpage.jsp?stage=1"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/Teaching/"); shiftBackward(r); insertBefore(r, "https://www.google.co.uk/?gfe_rd=cr&ei=58RkVqCSEITP0wWvzrPQDg#q=university+of+bristol+computer+science"); shiftBackward(r); insertBefore(r, "http://www.cs.bris.ac.uk/"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/ugadmissions/"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/ugadmissions/whyBristol/"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/ugadmissions/howToApply/"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/People/"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/People/staff.jsp"); shiftBackward(r); insertBefore(r, "https://www.cs.bris.ac.uk/People/personal.jsp?key=4196"); shiftBackward(r); insertBefore(r, "http://www.cs.bris.ac.uk/~ian/"); shiftBackward(r); insertBefore(r, "http://pastebin.com/SusF2063"); setFirst(r); }
SET setIntersect(SET s1,SET s2) { SET set; void *e; /* At least one of the sets must have a compare function */ if ( ! (s1->cmp || s2->cmp) ) return NULL; /* Create a disjoint set */ set = setNew(s1->cmp ? s1->cmp : s2->cmp,1,s1->ord); if (!set) { XLOG(set); return NULL; } for (e = setFirst(s1); e; e = setNext(s1)) { if (setContains(s2,e)) setAdd(set,e); } return set; }
List<T>::List() { setDebug(false); setFirst(NULL); setLast(NULL); }
void removeAfter(T * prev, T * e) { if (prev) prev->setNext(e->getNext()); else setFirst(e->getNext()); }
// Queries the use to find out what actions they want to perform. // Runs continuously until the user selects 'Quit'. Contains basic // operations for manipulating a doubly linked list, except adding // a new node. int query(ring *r) { printf("What would you like to do?\n"); printf("1 - View previous website\n"); printf("2 - View next website\n"); printf("3 - View latest website\n"); printf("4 - View first website\n"); printf("5 - Open current website\n"); printf("6 - Remove from history\n"); printf("7 - Print number of links stored\n"); printf("8 - Print all links (from last to first)\n"); printf("9 - Quit\n"); char option, nl; char link[120] = "open "; scanf("%c%c", &option, &nl); switch(option) { case '1': shiftForward(r); printf("Previous:\n%s\n", getCurrent(r)); return 1; break; case '2': shiftBackward(r); printf("Next:\n%s\n", getCurrent(r)); return 1; break; case '3': setFirst(r); printf("Latest:\n%s\n", getCurrent(r)); return 1; break; case '4': setLast(r); printf("First:\n%s\n", getCurrent(r)); return 1; break; case '5': printf("Opening:\n%s\n", getCurrent(r)); strcat(link, getCurrent(r)); system(link); return 1; break; case '6': deleteCurrent(r); printf("Previous:\n%s\n", getCurrent(r)); return 1; break; case '7': printf("There are %d links stored.\n", getLength(r)); printf("Current: \n%s\n", getCurrent(r)); return 1; break; case '8': printAll(r); printf("\nCurrent: \n%s\n", getCurrent(r)); return 1; break; case '9': return 0; break; default: printf("Please enter a valid option!\n"); return 1; } }
THMapOverlayPair::~THMapOverlayPair() { setFirst(nullptr, false); setSecond(nullptr, false); }
THMapOverlayPair::~THMapOverlayPair() { setFirst(NULL, false); setSecond(NULL, false); }