home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 Mobile
/
Chip_Mobile_2001.iso
/
palm
/
business
/
printcar
/
printcar.exe
/
src
/
Util
/
AppPreferencesInputStream.cc
next >
Wrap
C/C++ Source or Header
|
2000-06-03
|
2KB
|
69 lines
//
// $Id: AppPreferencesInputStream.cc,v 1.1.1.1 2000/06/02 22:23:01 sergey Exp $
//
#include <Pilot.h>
#include "AppPreferencesInputStream.h"
namespace Util
{
AppPreferencesInputStream::AppPreferencesInputStream():
_position(0)
{}
AppPreferencesInputStream::~AppPreferencesInputStream()
{
close();
}
// operations
bool AppPreferencesInputStream::open(DWord creatorID, Word preferencesID)
{
close();
Word size = 0;
if (PrefGetAppPreferences(creatorID, preferencesID, NULL, &size, true) != noPreferenceFound)
{
if (_buffer.allocate(size))
{
PrefGetAppPreferences(creatorID, preferencesID, _buffer.lock(), &size, true);
_buffer.unlock();
return true;
}
}
return false;
}
void AppPreferencesInputStream::close()
{
_position = 0;
}
int AppPreferencesInputStream::readData(void* data, int size) const
{
if (!eof() && data != 0 && size > 0)
{
if (_position+size > _buffer.size())
size = _buffer.size()-_position;
MemMove(data, (Byte*)_buffer.lock()+_position, size);
_buffer.unlock();
_position += size;
return size;
}
return 0;
}
bool AppPreferencesInputStream::eof() const
{
return _position >= _buffer.size();
}
}
// namespace Util