Many interfaces calling pisn_putsnapshot(s) use a timestamp of 0 to indicate that the PI-API should use the current server time as the timestamp for the event being recorded. Buffered data may sit on the API Node for an indefinite period before being sent to the home node. This makes storing a zero timestamp impractical. Instead the buffered PI API detects the 0 timestamp and makes a call to pitm_fastservertime. This function makes use of a server time and local time retrieved and stored on the local machine during the initial connection. The difference between these times is applied to the current local time to calculate the current server time without calls to the server. This allows interpretation of a 0 timestamp even when the server is down.
Extended API functions that use NULL pointers for the timestamp use the current system time. See the Time and PITIMESTAMP Structure topic.