void doPublish()
{
  if( stdr_msgs::ApplanixPose::ConstPtr pose = data_reader.instantiateApplanixPose() ) {
    timing(pose->header.stamp);
    pose_pub.publish( *pose );
  }
  else if( velodyne_msgs::VelodyneScan::ConstPtr scans = data_reader.instantiateVelodyneScans() ) {
    timing(scans->header.stamp);
    scans_pub.publish( *scans );
  }
  else if( stdr_velodyne::PointCloud::ConstPtr spin = data_reader.instantiateVelodyneSpin() ) {
    std_msgs::Header header;
    pcl_conversions::fromPCL(spin->header, header);
    timing(header.stamp);
    spin_pub.publish( *spin );
  }
  else if( stdr_msgs::ApplanixGPS::ConstPtr gps = data_reader.instantiateApplanixGPS() ) {
    timing(gps->header.stamp);
    gps_pub.publish( *gps );
  }
  else if( stdr_msgs::ApplanixRMS::ConstPtr rms = data_reader.instantiateApplanixRMS() ) {
    timing(rms->header.stamp);
    rms_pub.publish( *rms );
  }
  else if( stdr_msgs::LadybugImages::ConstPtr img = data_reader.instantiateLadybugImages() ) {
    timing(img->header.stamp);
    ladybug_pub.publish( *img );
  }
}