add c++ interface for signalobserver