Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of dgps by
handle/dataLocation.cpp
- Committer:
- dylanembed123
- Date:
- 2014-04-10
- Revision:
- 15:e3e03a9df89e
- Parent:
- 9:da906eeac51e
- Child:
- 27:db73f8ac6c75
File content as of revision 15:e3e03a9df89e:
#include "dataLocation.h" DataLocation* LocHolder::get(LHType type){ if(type==LHType_locs){ return locs; }else if(type==LHType_targ){ return targ; }else if(type==LHType_base){ return base; } return base; } unsigned int LocHolder::getRealIndex(LHType type,int index,int offset,bool useSize){ return (index+offset)%(useSize?getI(type,LHIType_size):MAXNUMLOCS); } DataLocation& LocHolder::getC(LHType type,int offset){ return get(type)[getRealIndex(type,offset)]; } unsigned int& LocHolder::getI(LHType type,LHIType indexType){ if(indexType==LHIType_head){ // Grab proper header if(type==LHType_locs){return headLocs;}else if(type==LHType_targ){return headTarg;}else if(type==LHType_base){return headBase;} }else if(indexType==LHIType_size){ // Grab proper size if(type==LHType_locs){return sizeLocs;}else if(type==LHType_targ){return sizeTarg;}else if(type==LHType_base){return sizeBase;} } return headLocs; } void LocHolder::inc(LHType type,int amount,bool abs){ unsigned int& index=getI(type); index=getRealIndex(type,(abs?0:index),amount);//((abs?0:index)+amount)%getI(type,LHIType_size); getI(type)=index; } void LocHolder::add(LHType type,DataLocation newLoc){ getI(type)=getI(type,LHIType_size); getI(type,LHIType_size)++; getC(type)=newLoc; } static LocHolder* mainLocHolder=NULL; LocHolder& DH::Locs(){if(mainLocHolder==NULL){mainLocHolder=new LocHolder();}return *mainLocHolder;}