Exemple #1
0
LString &LString::operator +=(LChar c) {
    if (this->length() + 1 > this->capacity()) {
        reserve(nextSize());
    }
    this->mData->begin()[this->mData->mSize] = c;
    ++this->mData->mSize;
    return *this;
}
Exemple #2
0
//starts timer if stopped, adjusts interval if necessary
void IRCQueue::adjustTimer()
{
    int msec;
    msec=getRate().nextInterval(nextSize(), elapsed());
    //if (m_myIndex == 0)
    //    KX << _S(msec) << endl;
    m_timer->start(msec);
    m_startedAt.start();
    return;
}
Exemple #3
0
///lets us know we should block output
void IRCQueue::serverOnline(bool on)
{
    if (m_blocked!=on)
        return;
    m_blocked=!on;
    if (m_blocked && m_timer->isActive())
        reset();
    else if (!m_blocked && !m_timer->isActive() && nextSize())
    {
        adjustTimer();
    }
}
Exemple #4
0
LString &LString::operator +=(const LString &o) {
    if (o.isEmpty()) return *this;
    if (this->isEmpty()) {
        *this = o;
        return *this;
    }
    if (this->length() + o.length() > this->size()) {
        size_t next = nextSize();
        if (next < this->length() + o.length()) {
            reserve(this->length() + o.length());
        }
        else {
            reserve(next);
        }
    }
    std::copy(o.mData->begin(), o.mData->end(), this->mData->begin() + this->length());
    return *this;
}
	bool insert(key_type key, value_type value)
		{
		lassert(key != 0);
		
		typename FourLookupHashTableMutexType<threadsafe>::lock_type lock(mMutex);

		if (contains(key))
			return false;

		lassert(!contains(key));

		if (mTable->insert(key, value))
			return true;

		long newSize = mTable->bucketCount() * 1.25;

		while (true)
			{
			newSize = nextSize(newSize);

			if (tryToReplaceTableWithSize(newSize, key, value))
				return true;
			}
		}