Introduce a mechanism to test for certain core features
authorManuel Nickschas <sputnick@quassel-irc.org>
Sat, 10 Oct 2009 10:33:17 +0000 (12:33 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 1 Jan 2010 21:05:20 +0000 (22:05 +0100)
commit7aa691713f4185fe142f54e14d6b623ee706f77a
treeeb031f193372a702f6605a6a9b5df07370f9bd45
parent79e85a5bf416b388b0d6d0ce367e51638c959bfb
Introduce a mechanism to test for certain core features

We sometimes implement features that needs an up-to-date core to work correctly, but not always
a protocol bump is justified (because it's just a giant PITA). So we now have Client::coreFeatures()
that returns a bitmask of such optional features, which can be checked for at runtime and used to disable
client features if a too-old core is present.

Note that with every protocol bump the feature enum in quassel.h needs to be cleaned, and runtime checks
removed. Please mark all such places with a nice FIXME so we can find them easily.
src/client/client.cpp
src/client/client.h
src/common/quassel.cpp
src/common/quassel.h
src/core/core.cpp