Locking contexts

Hi,
Besides not being able to rename the context, I was wondering what's the actual difference between set_read_only(), set_user_locked(), and set_remote() methods of OfContext? What are they used for exactly?
If I want to lock the content of a context with set_read_only() for example, I was expecting that it would apply to the context and all its sub-contexts as well? Is there a way to do so or do we need to get all the sub-contexts and set them with the same?
Also, not really related to this, but just out of curiosity, what does set_name_dirty() do exactly?
Thanks,
Jeremy
Besides not being able to rename the context, I was wondering what's the actual difference between set_read_only(), set_user_locked(), and set_remote() methods of OfContext? What are they used for exactly?
If I want to lock the content of a context with set_read_only() for example, I was expecting that it would apply to the context and all its sub-contexts as well? Is there a way to do so or do we need to get all the sub-contexts and set them with the same?
Also, not really related to this, but just out of curiosity, what does set_name_dirty() do exactly?
Thanks,
Jeremy