NTP Client Library. Set sync provider pointing to public class function. Possible?
What could I do to allow registering this function as sync provider to hide NTP internals to my sketches?


The function should be a static member function. A "normal" member function does not have the right prototype as there is a hidden parameter ("this"). 

static time_t getNtpTime();


To solve this you need a single-ton (an instance of the client class) that the static function can use. 

class NTPClient {
public:
   NTPClient() ...
   {
     ...
     s_client = this;
   }
   time_t getNtpTime();
   ...
   static time_t getNtpTime() ( return (s_client-&gt;getNtpTime()); }
   ...
protected:
   static NTPClient* s_client;
   ...
}; 
...
NTPClient::s_client = NULL;
...
NTPClient ntpClient;
...
setSyncProvider(NTPClient::getNtpTime)


Alternatively a global function and a known instance:

class NTPClient { ... };
extern NTPClient ntpClient;
...
time_t getNtpTime() { return (ntpClient.getNtpTime()); } 
...
setSyncProvider(getNtpTime) 


Cheers!