void MetaDataPacket::setItem(int index, uint8_t key, uint16_t val){ if (index<0 || index>getItemNum()) return; uint16_t offset = CONST_HDR_LEN+getIDLen()*PURSUIT_ID_LEN + (index*QoS_ITEM_SIZE); data_.data[offset++] = key; data_.setBits((uint64_t)val,16,offset,0); }
void LongLongNim::LoopArray::print() { printf("Loop: "); for(int i=0; i<getItemNum(); i++) { LongLongNim::RESULT res = get(i); printf("(%d, %c), ", res.num, (res.winner== A) ? 'A':'B'); } printf("\n"); }
pair<uint8_t, uint16_t> MetaDataPacket::getItem(int index){ pair<uint8_t, uint16_t> item; item.first=0; if (index<0 || index>getItemNum()) return item; uint16_t offset = CONST_HDR_LEN+getIDLen()*PURSUIT_ID_LEN + (index*QoS_ITEM_SIZE); item.first = (uint8_t)data_.data[offset++]; item.second = (uint16_t)data_.getBits(16,offset, 0); return item; }
QoSList MetaDataPacket::getIIStatus(){ QoSList q; uint32_t offset = CONST_HDR_LEN+getIDLen()*PURSUIT_ID_LEN; int len = getItemNum(); if (len==0) return QoSList(); for (int i=0; i<len; i++){ q[data_.data[offset]] = data_.getBits(16,offset+1,0); offset+=QoS_ITEM_SIZE; } return q; }
void IntPropChioce::inputData() { if ( !mData ) return; int value; switch( mDataSize ) { case 1: value = *((int8*)mData); break; case 2: value = *((int16*)mData); break; case 4: value = *((int32*)mData); break; } for( int i = 0 ; i < getItemNum() ; ++i ) { if ( value == (int)getItemData( i ) ) { setSelection( i ); break; } } }