• Daniel Vrátil's avatar
    Generate Protocol from an XML specification (ABI break) · 5535d6e5
    Daniel Vrátil authored
    Instead of maintaining 12k lines of hand-written protocol code, we
    specify the protocol in an XML and use a custom-written generator
    that generates the code for us.
    
    It's not only much easier to modify the protocol - we only need to
    change a single thing in the XML instead of touching several places
    of the implementation - but it's also much safer, as there's less
    risk of accidentally introducing a bug in the code.
    
    The major difference between the original hand-written code and the
    generated code is that we no longer use QSharedDataPointer and virtual
    methods in the Private classes, but instead all members are directly
    in the command clas with most getters and setters inlined. This means
    that copying commands is quite costly, so we pass them around as
    QSharedPointers or const references. This should give us a tiny little
    bit more performance.
    5535d6e5
dbinitializer.cpp 6.63 KB