| 164 | |
| 165 | |
| 166 | void ::ARFCNManager::installDecoder(GSM::L1Decoder *wL1d) |
| 167 | { |
| 168 | unsigned TN = wL1d->TN(); |
| 169 | const TDMAMapping& mapping = wL1d->mapping(); |
| 170 | |
| 171 | // Is this mapping a valid uplink on this slot? |
| 172 | assert(mapping.uplink()); |
| 173 | assert(mapping.allowedSlot(TN)); |
| 174 | |
| 175 | LOG(DEBUG) << "ARFCNManager::installDecoder TN: " << TN << " repeatLength: " << mapping.repeatLength(); |
| 176 | |
| 177 | mTableLock.lock(); |
| 178 | for (unsigned i=0; i<mapping.numFrames(); i++) { |
| 179 | unsigned FN = mapping.frameMapping(i); |
| 180 | while (FN<maxModulus) { |
| 181 | // Don't overwrite existing entries. |
| 182 | assert(mDemuxTable[TN][FN]==NULL); |
| 183 | mDemuxTable[TN][FN] = wL1d; |
| 184 | FN += mapping.repeatLength(); |
| 185 | } |
| 186 | } |
| 187 | mTableLock.unlock(); |
| 188 | } |
| 189 | |
| 190 | |
| 191 |
no test coverage detected