H5Fflush clarification

Hello- can someone clarify some questions I have on the H5F flush method?

1) What do global/local parameters mean? E.g., if the objectid is a dataset, or a file itself how do they behave?

2) If I am changing meta-information and not the data itself, does flush do anything? E.g., after using "setExtents" on a dataset, or moving an object?

3) Are there disadvantages to calling flush with respect to free-space handling? The docs indicate that free-space can be reclaimed/reused while the file is open in memory, but will flushing in the middle make those free blocks not useable?

4) What does a full "close" do that "flush" on the file not do?

5) Any general rules-of-thumb about when to or not to use flush?

Thanks in advance.

Warm Regards,