Which of these block cacheing properties are really needed? Trying to clean up possibly useless code in my block.

Permalink
When creating my blocks I have mostly copied over code from existing, free blocks and made changes from there.

Within a lot of the code I have seen are the following...

protected $btCacheBlockRecord = true;
   protected $btCacheBlockOutput = true;
   protected $btCacheBlockOutputOnPost = true;
   protected $btCacheBlockOutputForRegisteredUsers = true;
   protected $btCacheBlockOutputLifetime = 300;


I would like to remove any of the above that are unnecessary but am not sure which to remove if any.

I guess I am wondering what the above do?

Is $btCacheBlockRecord a setting which if true, cache's the MySQL record used by the block which it retrieves from the database?

Is $btCacheBlockOutput the cacheing of the output such that C5 does not have to run the block logic or it's code anymore to display what the block normally displays?

What is $btCacheBlockOutputOnPost all about? IF my block does not use a form and/or does not use the POST method is that really necessary? Is this even about the POST method?

What is the difference between $btCacheBlockOuputOnPost and $btCacheBlockOutputForRegisteredUsers? Are both of these really necessary?

Any input anyone cares to give me would be appreciated. Better yet if anyone knows where these properties are explained exhaustively I would appreciate a link to said place.

Thanks.

Carlos