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]); }
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; } }
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; }