more getter-usage, and moving the getTrackIndexFromPos()-method to the module it's used in

This commit is contained in:
Erik Faye-Lund 2008-02-19 02:40:02 +00:00
parent ae82cf7306
commit 72e0b8f93a
6 changed files with 26 additions and 23 deletions

View File

@ -6,6 +6,18 @@ SyncDocument::~SyncDocument()
clearRedoStack(); clearRedoStack();
} }
size_t SyncDocument::getTrackIndexFromPos(size_t track) const
{
assert(track < tracks.size());
sync::Data::TrackContainer::const_iterator trackIter = tracks.begin();
for (size_t currTrack = 0; currTrack < track; ++currTrack, ++trackIter);
assert(tracks.end() != trackIter);
return trackIter->second;
}
#import <msxml4.dll> named_guids #import <msxml4.dll> named_guids
bool SyncDocument::load(const std::string &fileName) bool SyncDocument::load(const std::string &fileName)

View File

@ -262,6 +262,8 @@ public:
return cmd; return cmd;
} }
size_t getTrackIndexFromPos(size_t track) const;
bool load(const std::string &fileName); bool load(const std::string &fileName);
bool save(const std::string &fileName); bool save(const std::string &fileName);

View File

@ -461,7 +461,7 @@ int _tmain(int argc, _TCHAR* argv[])
// setup remap // setup remap
document.clientRemap[serverIndex] = clientIndex; document.clientRemap[serverIndex] = clientIndex;
const sync::Track &track = *document.actualTracks[serverIndex]; const sync::Track &track = document.getTrack(serverIndex);
sync::Track::KeyFrameContainer::const_iterator it; sync::Track::KeyFrameContainer::const_iterator it;
for (it = track.keyFrames.begin(); it != track.keyFrames.end(); ++it) for (it = track.keyFrames.begin(); it != track.keyFrames.end(); ++it)

View File

@ -34,17 +34,6 @@ Track &Data::getTrack(const std::basic_string<TCHAR> &name)
return *actualTracks[index]; return *actualTracks[index];
} }
size_t Data::getTrackIndexFromPos(size_t track)
{
assert(track < tracks.size());
sync::Data::TrackContainer::iterator trackIter = tracks.begin();
for (size_t currTrack = 0; currTrack < track; ++currTrack, ++trackIter);
assert(tracks.end() != trackIter);
return trackIter->second;
}
size_t Data::getTrackCount() const size_t Data::getTrackCount() const
{ {
return tracks.size(); return tracks.size();

View File

@ -23,22 +23,19 @@ namespace sync
~Data(); ~Data();
size_t getTrackIndex(const std::basic_string<TCHAR> &name); size_t getTrackIndex(const std::basic_string<TCHAR> &name);
Track &getTrack(const std::basic_string<TCHAR> &name); Track &getTrack(const std::basic_string<TCHAR> &name);
size_t getTrackIndexFromPos(size_t track);
Track &getTrack(size_t track) Track &getTrack(size_t track)
{ {
assert(track < actualTracks.size()); assert(track < actualTracks.size());
assert(NULL != actualTracks[track]); assert(NULL != actualTracks[track]);
return *actualTracks[track]; return *actualTracks[track];
} }
size_t getTrackCount() const; size_t getTrackCount() const;
// private:
typedef std::map<const std::basic_string<TCHAR>, size_t> TrackContainer; typedef std::map<const std::basic_string<TCHAR>, size_t> TrackContainer;
// typedef std::map<const std::basic_string<TCHAR>, SyncTrack> TrackContainer;
TrackContainer tracks; TrackContainer tracks;
// protected:
std::vector<Track*> actualTracks; std::vector<Track*> actualTracks;
}; };
} }

View File

@ -40,14 +40,17 @@ ClientDevice::~ClientDevice()
Track &ClientDevice::getTrack(const std::string &trackName) Track &ClientDevice::getTrack(const std::string &trackName)
{ {
/* const size_t oldCount = syncData.getTrackCount();
Track &track = syncData.getTrack(trackName);
if (oldCount == syncData.getTrackCount()) return track; */
sync::Data::TrackContainer::iterator iter = syncData.tracks.find(trackName); sync::Data::TrackContainer::iterator iter = syncData.tracks.find(trackName);
if (iter != syncData.tracks.end()) return *syncData.actualTracks[iter->second]; if (iter != syncData.tracks.end()) return syncData.getTrack(iter->second);
unsigned char cmd = GET_TRACK; unsigned char cmd = GET_TRACK;
send(serverSocket, (char*)&cmd, 1, 0); send(serverSocket, (char*)&cmd, 1, 0);
size_t clientIndex = syncData.actualTracks.size(); size_t clientIndex = syncData.getTrackCount();
send(serverSocket, (char*)&clientIndex, sizeof(size_t), 0); send(serverSocket, (char*)&clientIndex, sizeof(size_t), 0);
// send request data // send request data
@ -58,10 +61,10 @@ Track &ClientDevice::getTrack(const std::string &trackName)
send(serverSocket, name_str, int(name_len), 0); send(serverSocket, name_str, int(name_len), 0);
sync::Track *track = new sync::Track(); sync::Track *track = new sync::Track();
syncData.actualTracks.push_back(track); syncData.actualTracks.push_back(track);
syncData.tracks[trackName] = clientIndex; syncData.tracks[trackName] = clientIndex;
return *track; return *track;
// return track;
} }
bool ClientDevice::update(float row) bool ClientDevice::update(float row)
@ -95,7 +98,7 @@ bool ClientDevice::update(float row)
assert(interp >= 0); assert(interp >= 0);
assert(interp < Track::KeyFrame::IT_COUNT); assert(interp < Track::KeyFrame::IT_COUNT);
sync::Track &t = *syncData.actualTracks[track]; sync::Track &t = syncData.getTrack(track);
t.setKeyFrame(row, t.setKeyFrame(row,
Track::KeyFrame( Track::KeyFrame(
value, value,