void OrbitraderMFD::POSTStatus(int (*XMLwriter)( OrbitTraderMFD * ), int current_xfer_code, bool * statusFlag ) { DB("OrbitraderMFD::POSTStatus"); if (xfer_code == 0) { // here I'd like to write different XMLs XMLwriter( this ); } int result = 1; if (xfer_code == 0 || xfer_code == current_xfer_code) { if (oapiGetSysTime () - previousTime > POSTdeltaTime) { previousTime = oapiGetSysTime (); xfer_code = current_xfer_code; result = CurlPOST("/reports/file"); } } if (result == 0) { xfer_code = 0; // unlock other transfers POST_data.clear(); // free and clean up the allocated data if (chunk.memory) free(chunk.memory); chunk.memory = NULL; chunk.size = 0; *statusFlag = true; } } int XMLWriter1( OrbitTraderMFD *mfd ) { printf("%s", mfd->astring ); return 1; } int XMLWriter2( OrbiterTraderMFD *mfd ) { printf("Number two! %ld\n", mfd->anumber ); return 1; }