Esempio n. 1
0
/* add_freelist the free block pointer to appropriate segregated free list */
void add_freelist (void *bp){
    int index = getlist_index(GET_SIZE(HDRP(bp)));
    setNext(bp, free_listp[index]);
    setPrev(bp, NULL);  

    if (free_listp[index] != NULL)
            setPrev(free_listp[index], bp); 
          
    free_listp[index] = bp;

    return;
}
Esempio n. 2
0
IOBooksInfo::IOBooksInfo() {
    setCardNumber("");
    setCode("");
    setODate("");
    setIDate("");
    setNext(NULL);
    setPrev(NULL);
}
Esempio n. 3
0
/*delete_freelist Remove the allocated block pointer from its assigned segregated free list */
void delete_freelist (void *bp){
    int index = getlist_index(GET_SIZE(HDRP(bp)));
    if (getPrev(bp) != NULL)
        setNext(getPrev(bp),getNext(bp));

    else 
	free_listp[index] = getNext(bp);

    if (getNext(bp) != NULL)
        setPrev(getNext(bp), getPrev(bp));

    return;
}
/*!
  Destruct container
  \note The Containers in vector of the container are not
        destructed. They are owned by the logical hierarchy (i.e.,
		the fl_Container classes like fl_BlockLayout), not the physical
        hierarchy.
 */
fp_TOCContainer::~fp_TOCContainer()
{
	clearCons();
	deleteBrokenTOCs(false);
	UT_DEBUGMSG(("SEVIOR: deleting TOC %p \n",this));
//
// For debugging...
//
	setContainer(NULL);
	setPrev(NULL);
	setNext(NULL);
	m_pMasterTOC = NULL;

}
Esempio n. 5
0
void Book::update(){
    
    if (bChange){
        prevPage = *this;
        prevPage.width = this->width*0.5;
        nextPage = *this;
        nextPage.width = this->width*0.5;
        nextPage.x = this->x + this->width*0.5;
        page.set(nextPage);
        
        if (pageNumber < pages.size())
            page.front = &pages[pageNumber].getTextureReference();
        
        if (pageNumber < pages.size()-1)
            page.back = &pages[pageNumber+1].getTextureReference();
        
        bChange = false;
    }
    
    page.update();
    page.setHandAt(hand);
    
    ofPoint handVel = hand - prevHand;
    if ( prevPage.inside(hand) ){
        
        cout << "Hand vel " << handVel.x << " transition val " << page.getTransition() << endl;

        if (handVel.x < -3 &&
            page.getTransition() < -0.20 ){
            if (setNext()){
                page.setNormHandAt(ofPoint(1.0,1.0),1.0);
            }
        } else if (handVel.x > 3 &&
                   page.getTransition() > 0.90){
            if (setPrev()){
                page.setNormHandAt(ofPoint(0.0,1.0),1.0);
                cout << "back flip" << endl;
            }
        }
        
    }
    
    prevHand = hand;
}
/*!
 * This deletes all the broken TOCs from this master TOC.
 * This routine assumes that a clear screen has been set already.
 */
void fp_TOCContainer::deleteBrokenTOCs(bool bClearFirst)
{
	if(isThisBroken())
	{
		return;
	}
	if(bClearFirst)
	{
		clearScreen();
		//
		// Remove broken TOC pointers
		//
		clearBrokenContainers();
	}
	if(getFirstBrokenTOC() == NULL)
	{
		return;
	}
	fp_TOCContainer * pBroke = NULL;
	fp_TOCContainer * pNext = NULL;
	pBroke = getFirstBrokenTOC();
	bool bFirst = true;
	while(pBroke )
	{
		pNext = static_cast<fp_TOCContainer *>(pBroke->getNext());
		if(!bFirst)
		{
		        fp_Container * pConBroke =  pBroke->getContainer();
			if(pConBroke)
			{
			    UT_sint32 i = pBroke->getContainer()->findCon(pBroke);
//
// First broken TOC is not in the container.
//
			    if(i >=0)
			    {
			        fp_Container * pCon = pBroke->getContainer();
				pBroke->setContainer(NULL);
				pCon->deleteNthCon(i);
			    }
			}
		}
		bFirst = false;
		xxx_UT_DEBUGMSG(("SEVIOR: Deleting broken TOC %x \n",pBroke));
		delete pBroke;
		if(pBroke == getLastBrokenTOC())
		{
			pBroke = NULL;
		}
		else
		{
			pBroke = pNext;
		}
	}
	setFirstBrokenTOC(NULL);
	setLastBrokenTOC(NULL);
	setNext(NULL);
	setPrev(NULL);
//	if(bClearFirst)
	{
		fl_TOCLayout * pTL = static_cast<fl_TOCLayout *>(getSectionLayout());
		fl_DocSectionLayout * pDSL = pTL->getDocSectionLayout();
		pDSL->deleteBrokenTablesFromHere(pTL);
	}
}