Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
// 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);
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
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;
}
Exemplo n.º 6
0
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;
}
Exemplo n.º 7
0
// 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;
}
Exemplo n.º 8
0
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;
}
Exemplo n.º 9
0
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;
}
Exemplo n.º 10
0
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;
}
Exemplo n.º 11
0
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);
}
Exemplo n.º 12
0
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);
	}
}
Exemplo n.º 13
0
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;
}
Exemplo n.º 14
0
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);
    }
}
Exemplo n.º 15
0
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);
}
Exemplo n.º 16
0
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);
}
Exemplo n.º 17
0
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;
}
Exemplo n.º 18
0
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);
}
Exemplo n.º 19
0
// 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);
}
Exemplo n.º 20
0
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;
}
Exemplo n.º 21
0
List<T>::List() {
  setDebug(false);
  setFirst(NULL);
  setLast(NULL);
}
Exemplo n.º 22
0
 void removeAfter(T * prev, T * e)
    {
    if (prev) prev->setNext(e->getNext());
    else setFirst(e->getNext());
    }
Exemplo n.º 23
0
// 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;
	}
}
Exemplo n.º 24
0
THMapOverlayPair::~THMapOverlayPair()
{
    setFirst(nullptr, false);
    setSecond(nullptr, false);
}
Exemplo n.º 25
0
THMapOverlayPair::~THMapOverlayPair()
{
    setFirst(NULL, false);
    setSecond(NULL, false);
}