예제 #1
0
void Mesg::SetFields(const Mesg& mesg)
{
   if (mesg.GetNum() != GetNum())
      return;
   
   for (int i=0; i < (int)mesg.fields.size(); i++)
      SetField(mesg.fields[i]);
}
예제 #2
0
void MesgBroadcaster::OnMesg(Mesg& mesg)
{
   for (int i=0; i < (int)mesgListeners.size(); i++)
      mesgListeners[i]->OnMesg(mesg);

   switch (mesg.GetNum())
   {
      case FIT_MESG_NUM_FILE_ID:
      {
         FileIdMesg fileIdMesg(mesg);
         for (int i=0; i < (int)fileIdMesgListeners.size(); i++)
            fileIdMesgListeners[i]->OnMesg(fileIdMesg);
         break;
      }
      case FIT_MESG_NUM_FILE_CREATOR:
      {
         FileCreatorMesg fileCreatorMesg(mesg);
         for (int i=0; i < (int)fileCreatorMesgListeners.size(); i++)
            fileCreatorMesgListeners[i]->OnMesg(fileCreatorMesg);
         break;
      }
      case FIT_MESG_NUM_SOFTWARE:
      {
         SoftwareMesg softwareMesg(mesg);
         for (int i=0; i < (int)softwareMesgListeners.size(); i++)
            softwareMesgListeners[i]->OnMesg(softwareMesg);
         break;
      }
      case FIT_MESG_NUM_SLAVE_DEVICE:
      {
         SlaveDeviceMesg slaveDeviceMesg(mesg);
         for (int i=0; i < (int)slaveDeviceMesgListeners.size(); i++)
            slaveDeviceMesgListeners[i]->OnMesg(slaveDeviceMesg);
         break;
      }
      case FIT_MESG_NUM_CAPABILITIES:
      {
         CapabilitiesMesg capabilitiesMesg(mesg);
         for (int i=0; i < (int)capabilitiesMesgListeners.size(); i++)
            capabilitiesMesgListeners[i]->OnMesg(capabilitiesMesg);
         break;
      }
      case FIT_MESG_NUM_FILE_CAPABILITIES:
      {
         FileCapabilitiesMesg fileCapabilitiesMesg(mesg);
         for (int i=0; i < (int)fileCapabilitiesMesgListeners.size(); i++)
            fileCapabilitiesMesgListeners[i]->OnMesg(fileCapabilitiesMesg);
         break;
      }
      case FIT_MESG_NUM_MESG_CAPABILITIES:
      {
         MesgCapabilitiesMesg mesgCapabilitiesMesg(mesg);
         for (int i=0; i < (int)mesgCapabilitiesMesgListeners.size(); i++)
            mesgCapabilitiesMesgListeners[i]->OnMesg(mesgCapabilitiesMesg);
         break;
      }
      case FIT_MESG_NUM_FIELD_CAPABILITIES:
      {
         FieldCapabilitiesMesg fieldCapabilitiesMesg(mesg);
         for (int i=0; i < (int)fieldCapabilitiesMesgListeners.size(); i++)
            fieldCapabilitiesMesgListeners[i]->OnMesg(fieldCapabilitiesMesg);
         break;
      }
      case FIT_MESG_NUM_DEVICE_SETTINGS:
      {
         DeviceSettingsMesg deviceSettingsMesg(mesg);
         for (int i=0; i < (int)deviceSettingsMesgListeners.size(); i++)
            deviceSettingsMesgListeners[i]->OnMesg(deviceSettingsMesg);
         break;
      }
      case FIT_MESG_NUM_USER_PROFILE:
      {
         UserProfileMesg userProfileMesg(mesg);
         for (int i=0; i < (int)userProfileMesgListeners.size(); i++)
            userProfileMesgListeners[i]->OnMesg(userProfileMesg);
         break;
      }
      case FIT_MESG_NUM_HRM_PROFILE:
      {
         HrmProfileMesg hrmProfileMesg(mesg);
         for (int i=0; i < (int)hrmProfileMesgListeners.size(); i++)
            hrmProfileMesgListeners[i]->OnMesg(hrmProfileMesg);
         break;
      }
      case FIT_MESG_NUM_SDM_PROFILE:
      {
         SdmProfileMesg sdmProfileMesg(mesg);
         for (int i=0; i < (int)sdmProfileMesgListeners.size(); i++)
            sdmProfileMesgListeners[i]->OnMesg(sdmProfileMesg);
         break;
      }
      case FIT_MESG_NUM_BIKE_PROFILE:
      {
         BikeProfileMesg bikeProfileMesg(mesg);
         for (int i=0; i < (int)bikeProfileMesgListeners.size(); i++)
            bikeProfileMesgListeners[i]->OnMesg(bikeProfileMesg);
         break;
      }
      case FIT_MESG_NUM_ZONES_TARGET:
      {
         ZonesTargetMesg zonesTargetMesg(mesg);
         for (int i=0; i < (int)zonesTargetMesgListeners.size(); i++)
            zonesTargetMesgListeners[i]->OnMesg(zonesTargetMesg);
         break;
      }
      case FIT_MESG_NUM_SPORT:
      {
         SportMesg sportMesg(mesg);
         for (int i=0; i < (int)sportMesgListeners.size(); i++)
            sportMesgListeners[i]->OnMesg(sportMesg);
         break;
      }
      case FIT_MESG_NUM_HR_ZONE:
      {
         HrZoneMesg hrZoneMesg(mesg);
         for (int i=0; i < (int)hrZoneMesgListeners.size(); i++)
            hrZoneMesgListeners[i]->OnMesg(hrZoneMesg);
         break;
      }
      case FIT_MESG_NUM_SPEED_ZONE:
      {
         SpeedZoneMesg speedZoneMesg(mesg);
         for (int i=0; i < (int)speedZoneMesgListeners.size(); i++)
            speedZoneMesgListeners[i]->OnMesg(speedZoneMesg);
         break;
      }
      case FIT_MESG_NUM_CADENCE_ZONE:
      {
         CadenceZoneMesg cadenceZoneMesg(mesg);
         for (int i=0; i < (int)cadenceZoneMesgListeners.size(); i++)
            cadenceZoneMesgListeners[i]->OnMesg(cadenceZoneMesg);
         break;
      }
      case FIT_MESG_NUM_POWER_ZONE:
      {
         PowerZoneMesg powerZoneMesg(mesg);
         for (int i=0; i < (int)powerZoneMesgListeners.size(); i++)
            powerZoneMesgListeners[i]->OnMesg(powerZoneMesg);
         break;
      }
      case FIT_MESG_NUM_MET_ZONE:
      {
         MetZoneMesg metZoneMesg(mesg);
         for (int i=0; i < (int)metZoneMesgListeners.size(); i++)
            metZoneMesgListeners[i]->OnMesg(metZoneMesg);
         break;
      }
      case FIT_MESG_NUM_GOAL:
      {
         GoalMesg goalMesg(mesg);
         for (int i=0; i < (int)goalMesgListeners.size(); i++)
            goalMesgListeners[i]->OnMesg(goalMesg);
         break;
      }
      case FIT_MESG_NUM_ACTIVITY:
      {
         ActivityMesg activityMesg(mesg);
         for (int i=0; i < (int)activityMesgListeners.size(); i++)
            activityMesgListeners[i]->OnMesg(activityMesg);
         mesgWithEventBroadcaster.OnMesg(activityMesg);
         break;
      }
      case FIT_MESG_NUM_SESSION:
      {
         SessionMesg sessionMesg(mesg);
         for (int i=0; i < (int)sessionMesgListeners.size(); i++)
            sessionMesgListeners[i]->OnMesg(sessionMesg);
         mesgWithEventBroadcaster.OnMesg(sessionMesg);
         break;
      }
      case FIT_MESG_NUM_LAP:
      {
         LapMesg lapMesg(mesg);
         for (int i=0; i < (int)lapMesgListeners.size(); i++)
            lapMesgListeners[i]->OnMesg(lapMesg);
         mesgWithEventBroadcaster.OnMesg(lapMesg);
         break;
      }
      case FIT_MESG_NUM_LENGTH:
      {
         LengthMesg lengthMesg(mesg);
         for (int i=0; i < (int)lengthMesgListeners.size(); i++)
            lengthMesgListeners[i]->OnMesg(lengthMesg);
         mesgWithEventBroadcaster.OnMesg(lengthMesg);
         break;
      }
      case FIT_MESG_NUM_RECORD:
      {
         RecordMesg recordMesg(mesg);
         for (int i=0; i < (int)recordMesgListeners.size(); i++)
            recordMesgListeners[i]->OnMesg(recordMesg);
         bufferedRecordMesgBroadcaster.OnMesg(recordMesg);
         break;
      }
      case FIT_MESG_NUM_EVENT:
      {
         EventMesg eventMesg(mesg);
         for (int i=0; i < (int)eventMesgListeners.size(); i++)
            eventMesgListeners[i]->OnMesg(eventMesg);
         mesgWithEventBroadcaster.OnMesg(eventMesg);
         break;
      }
      case FIT_MESG_NUM_DEVICE_INFO:
      {
         DeviceInfoMesg deviceInfoMesg(mesg);
         for (int i=0; i < (int)deviceInfoMesgListeners.size(); i++)
            deviceInfoMesgListeners[i]->OnMesg(deviceInfoMesg);
         break;
      }
      case FIT_MESG_NUM_TRAINING_FILE:
      {
         TrainingFileMesg trainingFileMesg(mesg);
         for (int i=0; i < (int)trainingFileMesgListeners.size(); i++)
            trainingFileMesgListeners[i]->OnMesg(trainingFileMesg);
         break;
      }
      case FIT_MESG_NUM_HRV:
      {
         HrvMesg hrvMesg(mesg);
         for (int i=0; i < (int)hrvMesgListeners.size(); i++)
            hrvMesgListeners[i]->OnMesg(hrvMesg);
         break;
      }
      case FIT_MESG_NUM_COURSE:
      {
         CourseMesg courseMesg(mesg);
         for (int i=0; i < (int)courseMesgListeners.size(); i++)
            courseMesgListeners[i]->OnMesg(courseMesg);
         break;
      }
      case FIT_MESG_NUM_COURSE_POINT:
      {
         CoursePointMesg coursePointMesg(mesg);
         for (int i=0; i < (int)coursePointMesgListeners.size(); i++)
            coursePointMesgListeners[i]->OnMesg(coursePointMesg);
         break;
      }
      case FIT_MESG_NUM_WORKOUT:
      {
         WorkoutMesg workoutMesg(mesg);
         for (int i=0; i < (int)workoutMesgListeners.size(); i++)
            workoutMesgListeners[i]->OnMesg(workoutMesg);
         break;
      }
      case FIT_MESG_NUM_WORKOUT_STEP:
      {
         WorkoutStepMesg workoutStepMesg(mesg);
         for (int i=0; i < (int)workoutStepMesgListeners.size(); i++)
            workoutStepMesgListeners[i]->OnMesg(workoutStepMesg);
         break;
      }
      case FIT_MESG_NUM_SCHEDULE:
      {
         ScheduleMesg scheduleMesg(mesg);
         for (int i=0; i < (int)scheduleMesgListeners.size(); i++)
            scheduleMesgListeners[i]->OnMesg(scheduleMesg);
         break;
      }
      case FIT_MESG_NUM_TOTALS:
      {
         TotalsMesg totalsMesg(mesg);
         for (int i=0; i < (int)totalsMesgListeners.size(); i++)
            totalsMesgListeners[i]->OnMesg(totalsMesg);
         break;
      }
      case FIT_MESG_NUM_WEIGHT_SCALE:
      {
         WeightScaleMesg weightScaleMesg(mesg);
         for (int i=0; i < (int)weightScaleMesgListeners.size(); i++)
            weightScaleMesgListeners[i]->OnMesg(weightScaleMesg);
         break;
      }
      case FIT_MESG_NUM_BLOOD_PRESSURE:
      {
         BloodPressureMesg bloodPressureMesg(mesg);
         for (int i=0; i < (int)bloodPressureMesgListeners.size(); i++)
            bloodPressureMesgListeners[i]->OnMesg(bloodPressureMesg);
         break;
      }
      case FIT_MESG_NUM_MONITORING_INFO:
      {
         MonitoringInfoMesg monitoringInfoMesg(mesg);
         for (int i=0; i < (int)monitoringInfoMesgListeners.size(); i++)
            monitoringInfoMesgListeners[i]->OnMesg(monitoringInfoMesg);
         break;
      }
      case FIT_MESG_NUM_MONITORING:
      {
         MonitoringMesg monitoringMesg(mesg);
         for (int i=0; i < (int)monitoringMesgListeners.size(); i++)
            monitoringMesgListeners[i]->OnMesg(monitoringMesg);
         break;
      }
      case FIT_MESG_NUM_MEMO_GLOB:
      {
         MemoGlobMesg memoGlobMesg(mesg);
         for (int i=0; i < (int)memoGlobMesgListeners.size(); i++)
            memoGlobMesgListeners[i]->OnMesg(memoGlobMesg);
         break;
      }
      case FIT_MESG_NUM_PAD:
      {
         PadMesg padMesg(mesg);
         for (int i=0; i < (int)padMesgListeners.size(); i++)
            padMesgListeners[i]->OnMesg(padMesg);
         break;
      }

      default:
         break;
   }
}
예제 #3
0
파일: test1.C 프로젝트: justintoo/sawyer
 virtual std::string maybeBody(const Mesg &mesg, const MesgProps &props) /*override*/ {
     std::string retval = UnformattedSink::maybeBody(mesg, props);
     if (mesg.isComplete())
         retval += "<---";
     return retval;
 }
예제 #4
0
Mesg Factory::CreateMesg(Mesg mesg)
{
   switch (mesg.GetNum())
   {
      case FIT_MESG_NUM_FILE_ID:
         return FileIdMesg(mesg);
      case FIT_MESG_NUM_FILE_CREATOR:
         return FileCreatorMesg(mesg);
      case FIT_MESG_NUM_SOFTWARE:
         return SoftwareMesg(mesg);
      case FIT_MESG_NUM_CAPABILITIES:
         return CapabilitiesMesg(mesg);
      case FIT_MESG_NUM_FILE_CAPABILITIES:
         return FileCapabilitiesMesg(mesg);
      case FIT_MESG_NUM_MESG_CAPABILITIES:
         return MesgCapabilitiesMesg(mesg);
      case FIT_MESG_NUM_FIELD_CAPABILITIES:
         return FieldCapabilitiesMesg(mesg);
      case FIT_MESG_NUM_DEVICE_SETTINGS:
         return DeviceSettingsMesg(mesg);
      case FIT_MESG_NUM_USER_PROFILE:
         return UserProfileMesg(mesg);
      case FIT_MESG_NUM_HRM_PROFILE:
         return HrmProfileMesg(mesg);
      case FIT_MESG_NUM_SDM_PROFILE:
         return SdmProfileMesg(mesg);
      case FIT_MESG_NUM_BIKE_PROFILE:
         return BikeProfileMesg(mesg);
      case FIT_MESG_NUM_ZONES_TARGET:
         return ZonesTargetMesg(mesg);
      case FIT_MESG_NUM_SPORT:
         return SportMesg(mesg);
      case FIT_MESG_NUM_HR_ZONE:
         return HrZoneMesg(mesg);
      case FIT_MESG_NUM_SPEED_ZONE:
         return SpeedZoneMesg(mesg);
      case FIT_MESG_NUM_CADENCE_ZONE:
         return CadenceZoneMesg(mesg);
      case FIT_MESG_NUM_POWER_ZONE:
         return PowerZoneMesg(mesg);
      case FIT_MESG_NUM_MET_ZONE:
         return MetZoneMesg(mesg);
      case FIT_MESG_NUM_GOAL:
         return GoalMesg(mesg);
      case FIT_MESG_NUM_ACTIVITY:
         return ActivityMesg(mesg);
      case FIT_MESG_NUM_SESSION:
         return SessionMesg(mesg);
      case FIT_MESG_NUM_LAP:
         return LapMesg(mesg);
      case FIT_MESG_NUM_LENGTH:
         return LengthMesg(mesg);
      case FIT_MESG_NUM_RECORD:
         return RecordMesg(mesg);
      case FIT_MESG_NUM_EVENT:
         return EventMesg(mesg);
      case FIT_MESG_NUM_DEVICE_INFO:
         return DeviceInfoMesg(mesg);
      case FIT_MESG_NUM_HRV:
         return HrvMesg(mesg);
      case FIT_MESG_NUM_COURSE:
         return CourseMesg(mesg);
      case FIT_MESG_NUM_COURSE_POINT:
         return CoursePointMesg(mesg);
      case FIT_MESG_NUM_WORKOUT:
         return WorkoutMesg(mesg);
      case FIT_MESG_NUM_WORKOUT_STEP:
         return WorkoutStepMesg(mesg);
      case FIT_MESG_NUM_SCHEDULE:
         return ScheduleMesg(mesg);
      case FIT_MESG_NUM_TOTALS:
         return TotalsMesg(mesg);
      case FIT_MESG_NUM_WEIGHT_SCALE:
         return WeightScaleMesg(mesg);
      case FIT_MESG_NUM_BLOOD_PRESSURE:
         return BloodPressureMesg(mesg);
      case FIT_MESG_NUM_MONITORING_INFO:
         return MonitoringInfoMesg(mesg);
      case FIT_MESG_NUM_MONITORING:
         return MonitoringMesg(mesg);
      case FIT_MESG_NUM_PAD:
         return PadMesg(mesg);
      default:
         break;
   }
   return mesg;
}