@classmethod
def register_class(manager, *args):
    """ register_class(class1, class2, class3, ...)
        
        Register one or more classes. Registered classes can be saved and
        restored from ssdf.
        
        A class needs to implement two methods to qualify for registration:
        * A method __to_ssdf__() that returns an ssdf.Struct
        * A classmethod __from_ssdf__(s) that accepts an ssdf.Struct and
          creates an instance of that class.
        
        """
    for cls in args:
        incomp = manager.is_incompatible_class(cls)
        if incomp:
            raise ValueError('Cannot register class %s: %s.' % (cls.
                __name__, incomp))
        else:
            manager._registered_classes[cls.__name__] = cls
