Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

Stream.cpp File Reference

Implements API functions for access to stream files. More...

#include "../Include/Globals.h"
#include "../Include/FlyLegacy.h"
#include "../Include/Utility.h"

Go to the source code of this file.

Functions

static char * sgets (char *s, int maxLength, SStream *stream)
static Tag snexttag (char *s, int maxLength, SStream *stream)
int OpenStream (SStream *stream)
int OpenStream (PFS *pfs, SStream *stream)
void CloseStream (SStream *stream)
void ReadFrom (CStreamObject *object, SStream *stream)
void SkipObject (SStream *stream)
void AdvanceToTag (unsigned int tag, SStream *stream)
void ReadInt (int *value, SStream *stream)
void ReadUInt (unsigned int *value, SStream *stream)
void ReadFloat (float *value, SStream *stream)
void ReadDouble (double *value, SStream *stream)
void ReadString (char *value, int maxLength, SStream *stream)
void ReadVector (SVector *value, SStream *stream)
void ReadLatLon (SPosition *value, SStream *stream)
void ReadPosition (SPosition *value, SStream *stream)
void ReadTime (SDateTime *value, SStream *stream)
void ReadTimeDelta (SDateTimeDelta *value, SStream *stream)
void ReadMessage (SMessage *msg, SStream *stream)
void ReadTag (Tag *tag, SStream *stream)


Detailed Description

This module contains the API for reading and writing to stream files. A stream file is a special type of text file consisting of a nested series of data tags (4-character strings enclosed by <> brackets) and data values (of various types...string, int, float, vector, etc.). These stream files are used to encode many of the internal objects within the application.

Each line consists of leading whitespace (which is ignored) followed by either a data tag (<xxxx>), data value or comment (preceded by //) Comments can also follow data tags (but not data values)

// This comment is OK <dtag> // This comment is OK 123.45 // Invalid, comments cannot follow data values

Nested sub-objects use the special tags <bgno> and <endo> as delimiters. It is up to the application to know how to interpret the various data tags values and sub-objects in the stream that it is reading.

Definition in file Stream.cpp.


Function Documentation

void AdvanceToTag unsigned int  tag,
SStream stream
 

Definition at line 254 of file Stream.cpp.

void CloseStream SStream stream  ) 
 

Definition at line 145 of file Stream.cpp.

References pclose(), and SStream::stream.

Referenced by CAerodynamicModel::CAerodynamicModel(), CAirplane::CAirplane(), CCameraManager::CCameraManager(), CChecklists::CChecklists(), CCockpitManager::CCockpitManager(), CControlMixer::CControlMixer(), CCursor::CCursor(), CElectricalSystem::CElectricalSystem(), CEngineManager::CEngineManager(), CExternalLights::CExternalLights(), CFlightControlSystem::CFlightControlSystem(), CFuelSystem::CFuelSystem(), CFuiWindow::CFuiWindow(), CGroundSuspension::CGroundSuspension(), CKeyMap::CKeyMap(), CLevelOfDetail::CLevelOfDetail(), CPanel::CPanel(), CPitotStaticSystem::CPitotStaticSystem(), CRadioManager::CRadioManager(), CSceneryModels::CSceneryModels(), CScenerySet::CScenerySet(), CSimulatedVehicle::CSimulatedVehicle(), CSituation::CSituation(), CVariableLoadouts::CVariableLoadouts(), CGaugeNeedle::Read(), and CHelicopter::ReadFinished().

int OpenStream PFS pfs,
SStream stream
 

Todo:
Currently only supports read access

Definition at line 120 of file Stream.cpp.

References SStream::filename, SStream::mode, popen(), and SStream::stream.

int OpenStream SStream stream  ) 
 

Todo:
Currently only supports read access

Definition at line 106 of file Stream.cpp.

References globals, OpenStream(), and SGlobals::pfs.

void ReadDouble double *  value,
SStream stream
 

Definition at line 304 of file Stream.cpp.

References ReadString().

void ReadFloat float *  value,
SStream stream
 

Definition at line 292 of file Stream.cpp.

References ReadString().

void ReadFrom CStreamObject object,
SStream stream
 

Definition at line 165 of file Stream.cpp.

References CStreamObject::Read(), CStreamObject::ReadFinished(), and snexttag().

Referenced by CAerodynamicModel::CAerodynamicModel(), CAirplane::CAirplane(), CCameraManager::CCameraManager(), CChecklists::CChecklists(), CCockpitManager::CCockpitManager(), CControlMixer::CControlMixer(), CCursor::CCursor(), CElectricalSystem::CElectricalSystem(), CEngineManager::CEngineManager(), CExternalLights::CExternalLights(), CFlightControlSystem::CFlightControlSystem(), CFuelSystem::CFuelSystem(), CFuiWindow::CFuiWindow(), CGenericTileDatabase::CGenericTileDatabase(), CGroundSuspension::CGroundSuspension(), CHelicopter::CHelicopter(), CKeyMap::CKeyMap(), CLevelOfDetail::CLevelOfDetail(), CPanel::CPanel(), CPitotStaticSystem::CPitotStaticSystem(), CRadioManager::CRadioManager(), CSceneryModels::CSceneryModels(), CScenerySet::CScenerySet(), CSimulatedVehicle::CSimulatedVehicle(), CSituation::CSituation(), CVariableLoadouts::CVariableLoadouts(), CGaugeNeedle::Read(), CGauge::Read(), CNeedleGauge::Read(), CTwoNeedleGauge::Read(), CThreeNeedleGauge::Read(), CAltimeterGauge::Read(), CRollingAltimeterGauge::Read(), CHorizonGauge::Read(), CAirspeedGauge::Read(), CVerticalSpeedGauge::Read(), CN1TachometerGauge::Read(), CFlyhawkDigitalClockGauge::Read(), CBasicADFGauge::Read(), CCabinPressureRateKnobGauge::Read(), CCabinPressureGauge::Read(), CBrakePressureGauge::Read(), CAOANeedleGauge::Read(), CHSIGauge::Read(), CNavigationGauge::Read(), CBKNavComKX155Gauge::Read(), CBKXPDRKT76Gauge::Read(), CBKADFKR87Gauge::Read(), CBKGPSKLN89Gauge::Read(), CBKAP140Gauge::Read(), CBKKFC200Gauge::Read(), CBKKFC150Gauge::Read(), CBKAudioKMA26Gauge::Read(), CGenericNavRadioGauge::Read(), CGenericCommRadioGauge::Read(), CGenericTransponderGauge::Read(), CGenericADFRadioGauge::Read(), CRMINeedleGauge::Read(), CFlyhawkNavGpsPanelGauge::Read(), CFlyhawkFuelSelectorGauge::Read(), CFlyhawkElevatorTrimGauge::Read(), CMalybooNavGpsPanelGauge::Read(), CMalybooDigitalClockGauge::Read(), CMalybooEngineMonitorGauge::Read(), CNavajoFuelSelectorGauge::Read(), CNavajoAmmeterGauge::Read(), CNavajoRadarAltimeterGauge::Read(), CCollinsEFISSelectionGauge::Read(), CCollinsVspeedPanel::Read(), CCollinsHFRadioGauge::Read(), CCollinsRTUGauge::Read(), CCollinsAirDataGauge::Read(), CCollinsMNDGauge::Read(), CUniversalFMSGauge::Read(), CPilatusEFISPanel::Read(), CWalkerTempAirspeedGauge::Read(), CGyroSlavingGauge::Read(), CVerticalRateGauge::Read(), CDMEGauge::Read(), CDME2Gauge::Read(), CWeatherRadarGauge::Read(), CAnalogAltPreselectGauge::Read(), CSwitchPairGauge::Read(), CDualKnobGauge::Read(), CTrimWheelGauge::Read(), CWalkerAPPanel::Read(), CWalkerFirePanel::Read(), CRockerSwitch::Read(), CDataMap::Read(), CCameraCockpit::Read(), CKeySet::Read(), CKeyMap::Read(), CPanel::Read(), CSituation::Read(), CFuelSystem::Read(), CElectricalSystem::Read(), CPitotStaticSystem::Read(), CVariableLoadouts::Read(), CCameraManager::Read(), CModelObject::Read(), CSceneryModels::Read(), CSlicedSuperTile::Read(), CGenericTileDatabase::Read(), CFuiWindow::Read(), and CFuiGroupBox::Read().

void ReadInt int *  value,
SStream stream
 

Definition at line 265 of file Stream.cpp.

References sgets().

Referenced by CGaugeNeedle::Read(), CGaugeRectangle::Read(), CGauge::Read(), CBitmapGauge::Read(), CNeedleGauge::Read(), CDigitalNeedleGauge::Read(), CAltimeterGauge::Read(), CRollingAltimeterGauge::Read(), CHorizonGauge::Read(), CFDHorizonGauge::Read(), CVerticalSpeedGauge::Read(), CDirectionalGyroGauge::Read(), CBasicCompassGauge::Read(), CFlyhawkDigitalClockGauge::Read(), CBasicDigitalClockGauge::Read(), CDigitalReadoutGauge::Read(), CDigitsReadoutGauge::Read(), CCabinPressureRateKnobGauge::Read(), CTurnCoordinatorGauge::Read(), CHSIGauge::Read(), CNavigationGauge::Read(), CBKNavComKX155Gauge::Read(), CBKXPDRKT76Gauge::Read(), CBKADFKR87Gauge::Read(), CBKKFC200Gauge::Read(), CBKKFC150Gauge::Read(), CGenericNavRadioGauge::Read(), CGenericCommRadioGauge::Read(), CGenericTransponderGauge::Read(), CGenericADFRadioGauge::Read(), CRMINeedleGauge::Read(), CFlyhawkNavGpsPanelGauge::Read(), CFlyhawkElevatorTrimGauge::Read(), CMalybooCHTIndicatorGauge::Read(), CMalybooNavGpsPanelGauge::Read(), CMalybooDigitalClockGauge::Read(), CNavajoRadarAltimeterGauge::Read(), CCollinsRTUGauge::Read(), CGyroSlavingGauge::Read(), CDMEGauge::Read(), CDME2Gauge::Read(), CAnalogAltPreselectGauge::Read(), CSimpleSwitch::Read(), CSimpleInOutStateSwitch::Read(), CSimpleFloatSwitch::Read(), CDualSwitch::Read(), CPushPullKnobGauge::Read(), CReversibleThrottleKnobGauge::Read(), CLightButtonGauge::Read(), CKAFireExtinguisherButton::Read(), CAirplane::Read(), CCockpitPanel::Read(), CCursor::Read(), CHelicopter::Read(), CKeyDefinition::Read(), CKeySet::Read(), CKeyMap::Read(), CPanel::Read(), CDependent::Read(), CPitotStaticSwitch::Read(), CPitotStaticSubsystem::Read(), CFlapControl::Read(), CADFRadio::Read(), CTransponderRadio::Read(), CPitotStaticPort::Read(), CModelObject::Read(), CHighDetailElevations::Read(), CSlicedSuperTile::Read(), CSlicedTextureList::Read(), CGenericTileType::Read(), CFuiComponent::Read(), CFuiWindow::Read(), CFuiButton::Read(), CFuiPopupMenu::Read(), CFuiCheckbox::Read(), CFuiRadioButton::Read(), CFuiLabel::Read(), CFuiTextField::Read(), CFuiLine::Read(), CFuiBox::Read(), CFuiSlider::Read(), CFuiList::Read(), and CFuiGraph::Read().

void ReadLatLon SPosition value,
SStream stream
 

Definition at line 364 of file Stream.cpp.

References SPosition::alt, gtfo, SPosition::lat, SPosition::lon, and ReadString().

Referenced by CScenerySet::Read().

void ReadMessage SMessage msg,
SStream stream
 

Todo:
Parse data type tag

Definition at line 511 of file Stream.cpp.

References globals, SMessage::group, SGlobals::logWarning, ReadString(), ReadTag(), snexttag(), StringToTag(), TagToString(), SMessage::user, and CLogFile::Write().

Referenced by CGauge::Read(), CDigitalNeedleGauge::Read(), CAltimeterGauge::Read(), CRollingAltimeterGauge::Read(), CHorizonGauge::Read(), CVerticalSpeedGauge::Read(), CHSIGauge::Read(), CNavigationGauge::Read(), CFlyhawkFuelSelectorGauge::Read(), CNavajoFuelSelectorGauge::Read(), CNavajoAmmeterGauge::Read(), CNavajoRadarAltimeterGauge::Read(), CCollinsEFISSelectionGauge::Read(), CCollinsRTUGauge::Read(), CCollinsMNDGauge::Read(), CPilatusEFISPanel::Read(), CLitInOutSwitch::Read(), CSwitchPairGauge::Read(), CDualSwitch::Read(), CPushPullKnobGauge::Read(), CReversibleThrottleKnobGauge::Read(), CDualKnobGauge::Read(), CCoveredLightButtonGauge::Read(), CLightButtonGauge::Read(), CMasterCautionWarningButtonGauge::Read(), CWalkerFirePanel::Read(), CLightSwitchSetGauge::Read(), CRockerSwitch::Read(), CDependent::Read(), CGenericMonitor::Read(), CGenericIndicator::Read(), CSwitchSet::Read(), CPneumaticSubsystem::Read(), CBKKAP140Panel::Read(), CAmmeter::Read(), CTransponderRadio::Read(), CBKKLN89GPSRadio::Read(), and CSimulatedVehicle::Read().

void ReadPosition SPosition value,
SStream stream
 

Definition at line 431 of file Stream.cpp.

References SPosition::alt, gtfo, SPosition::lat, SPosition::lon, ReadDouble(), and ReadString().

Referenced by CWorldObject::Read().

void ReadString char *  value,
int  maxLength,
SStream stream
 

Definition at line 316 of file Stream.cpp.

References globals, SGlobals::logWarning, sgets(), and CLogFile::Write().

Referenced by CGaugeNeedle::Read(), CGaugeClickArea::Read(), CGaugeKnob::Read(), CGauge::Read(), CBitmapGauge::Read(), CDigitalNeedleGauge::Read(), CAltimeterGauge::Read(), CRollingAltimeterGauge::Read(), CHorizonGauge::Read(), CFDHorizonGauge::Read(), CVerticalSpeedGauge::Read(), CDirectionalGyroGauge::Read(), CExhaustGasTemperatureGauge::Read(), CBasicCompassGauge::Read(), CDigitalReadoutGauge::Read(), CDigitsReadoutGauge::Read(), CCabinPressureRateKnobGauge::Read(), CTurnCoordinatorGauge::Read(), CHSIGauge::Read(), CFlyhawkELTGauge::Read(), CSlipIndicatorGauge::Read(), CHobbsMeterGauge::Read(), CNavigationGauge::Read(), CBKKFC200Gauge::Read(), CBKKFC150Gauge::Read(), CRMINeedleGauge::Read(), CFlyhawkAnnunciator::Read(), CFlyhawkAnnunciatorTest::Read(), CFlyhawkFuelSelectorGauge::Read(), CFlyhawkElevatorTrimGauge::Read(), CMalybooEngineMonitorGauge::Read(), CNavajoFuelSelectorGauge::Read(), CNavajoRadarAltimeterGauge::Read(), CCollinsRTUGauge::Read(), CGyroSlavingGauge::Read(), CAnalogAltPreselectGauge::Read(), CSimpleSwitch::Read(), CSimpleInOutStateSwitch::Read(), CSimpleFloatSwitch::Read(), CPushPullKnobGauge::Read(), CReversibleThrottleKnobGauge::Read(), CDualKnobGauge::Read(), CTurnKnobGauge::Read(), CCoveredLightButtonGauge::Read(), CTrimWheelGauge::Read(), CIndicatorGauge::Read(), CPushButtonGauge::Read(), CLightButtonGauge::Read(), CMasterCautionWarningButtonGauge::Read(), CKAFireExtinguisherButton::Read(), CWalkerAPPanel::Read(), CRockerSwitch::Read(), CAirplane::Read(), CDataMapPolynomial::Read(), CDataMapTable::Read(), CCursor::Read(), CHelicopter::Read(), CKeyDefinition::Read(), CKeySet::Read(), CPanel::Read(), CSituation::Read(), CSubsystem::Read(), CDependent::Read(), CStallWarning::Read(), CTransponderRadio::Read(), CFuelSubsystem::Read(), CPitotStaticPort::Read(), CSimulatedVehicle::Read(), CFuelSystem::Read(), CElectricalSystem::Read(), CLoadoutUnit::Read(), CCockpitManager::Read(), CLevelOfDetail::Read(), CRadioManager::Read(), CModelManager::Read(), CVehicleObject::Read(), CAirplaneObject::Read(), CHelicopterObject::Read(), CScenerySet::Read(), CSlicedTextureList::Read(), CGenericTileDatabase::Read(), CFuiComponent::Read(), CFuiButton::Read(), CFuiPicture::Read(), ReadDouble(), ReadFloat(), ReadLatLon(), ReadMessage(), ReadPosition(), and ReadTag().

void ReadTag Tag tag,
SStream stream
 

Definition at line 591 of file Stream.cpp.

References ReadString(), and StringToTag().

Referenced by CGauge::Read(), CNeedleGauge::Read(), CDirectionalGyroGauge::Read(), CBasicADFGauge::Read(), CTurnCoordinatorGauge::Read(), CHSIGauge::Read(), CNavigationGauge::Read(), CBKNavComKX155Gauge::Read(), CBKXPDRKT76Gauge::Read(), CBKADFKR87Gauge::Read(), CBKGPSKLN89Gauge::Read(), CBKAudioKMA26Gauge::Read(), CGenericNavRadioGauge::Read(), CGenericCommRadioGauge::Read(), CGenericTransponderGauge::Read(), CGenericADFRadioGauge::Read(), CRMINeedleGauge::Read(), CNavGaugeGroup::Read(), CRadioGaugeGroup::Read(), CVerticalRateGauge::Read(), CBasicBatterySwitch::Read(), CDualKnobGauge::Read(), CCockpitPanel::Read(), CCursor::Read(), CKeyDefinition::Read(), CKeyMap::Read(), CPanel::Read(), CSubsystem::Read(), CDependent::Read(), CGenericIndicator::Read(), CExteriorLight::Read(), CFuelSubsystem::Read(), CSimulatedVehicle::Read(), CCockpitManager::Read(), CCameraManager::Read(), CWorldObject::Read(), CModelManager::Read(), CSceneryModels::Read(), CFuiComponent::Read(), CFuiSlider::Read(), and ReadMessage().

void ReadTime SDateTime value,
SStream stream
 

Definition at line 493 of file Stream.cpp.

void ReadTimeDelta SDateTimeDelta value,
SStream stream
 

Definition at line 502 of file Stream.cpp.

void ReadUInt unsigned int *  value,
SStream stream
 

Definition at line 278 of file Stream.cpp.

References sgets().

Referenced by CGauge::Read(), CSubsystem::Read(), CEngineSubsystem::Read(), CFuelTap::Read(), CSimulatedVehicle::Read(), CLevelOfDetail::Read(), CRadioManager::Read(), and CModelObject::Read().

void ReadVector SVector value,
SStream stream
 

Definition at line 343 of file Stream.cpp.

References sgets(), SVector::x, SVector::y, and SVector::z.

Referenced by CFuelCell::Read(), CPitotStaticPort::Read(), CSimulatedVehicle::Read(), CAerodynamicModel::Read(), CLoadoutUnit::Read(), and CWorldObject::Read().

static char* sgets char *  s,
int  maxLength,
SStream stream
[static]
 

Definition at line 58 of file Stream.cpp.

References pgets(), and SStream::stream.

Referenced by ReadInt(), ReadString(), ReadUInt(), ReadVector(), and snexttag().

void SkipObject SStream stream  ) 
 

Definition at line 218 of file Stream.cpp.

References snexttag().

Referenced by CTachometerGauge::Read(), CNavajoRadarAltimeterGauge::Read(), CPanel::Read(), CBKKAP140Panel::Read(), CSimulatedVehicle::Read(), CAerodynamicModel::Read(), CElectricalSystem::Read(), CSceneryModels::Read(), CFuiWindow::Read(), and CFuiGroupBox::Read().

static Tag snexttag char *  s,
int  maxLength,
SStream stream
[static]
 

Definition at line 78 of file Stream.cpp.

References sgets(), and StringToTag().

Referenced by ReadFrom(), ReadMessage(), and SkipObject().

SourceForge.net Logo Documentation generated by doxygen