def getProtocolClasses(superclass=ProtocolElement):
    # We keep a manual list of the superclasses that we define here
    # so we can filter them out when we're getting the protocol
    # classes.
    superclasses = set([
        ProtocolElement, SearchRequest, SearchResponse])
    thisModule = sys.modules[__name__]
    subclasses = []
    for name, class_ in inspect.getmembers(thisModule):
        if ((inspect.isclass(class_) and
                issubclass(class_, superclass) and
                class_ not in superclasses)):
            subclasses.append(class_)
    return subclasses


# We can now import the definitions of the protocol elements from the
# generated file.
Returns all the protocol classes that are subclasses of the
dataset/ETHPy150Open ga4gh/server/ga4gh/protocol.py/getProtocolClasses