void PDocument::AutoSave(void)
{
	//** Use Settingsfolder to
	if (autoSaveRef == NULL)
	{
		BPath settings;
		find_directory(B_USER_SETTINGS_DIRECTORY, &settings, true);
		char p[PATH_MAX];
		sprintf(p,"%s/ProjectConceptor/AutoSave/%s",settings.Path(),Title());
		//** check if this file exist already
		autoSaveRef=new BEntry(p);
	}
	BFile	*autoSave	= new BFile((const BEntry *)autoSaveRef,B_READ_WRITE);
	PushToStream(autoSave);
	delete autoSave;
}
Exemple #2
0
netBool UDPStream::UnPack(SerializerLess& _ser, const Peer& _peer)
{
	if(_ser.Read(s_typeUDPStream))
	{
		// check frame consistency (even if the type is correct)
		if(_ser.GetSize() <= _ser.GetBufferSize() && _ser.GetSize() > GetHeaderSize())
		{
			// Packet seems well formed, check data crc for consitency now
			netU32 crc_ser;
			static_cast<Serializer&>(_ser) >> crc_ser;

			SerializerLess upper_ser(_ser, GetHeaderSize(), _ser.GetBufferSize());

			if(upper_ser.GetSize() <= upper_ser.GetBufferSize() && upper_ser.GetSize() > GetHeaderSize())
			{
				netU32 crc_cmp = CRC32::Compute(_ser.GetBuffer() + GetHeaderSize(), upper_ser.GetSize() - GetHeaderSize());

				if(crc_cmp == crc_ser)
				{
					PushToStream(upper_ser, _peer);
				}
				else
				{
					//assert(false);
					// packet malformed drop
				}
			}
			else
			{
				//assert(false);
				// packet malformed drop
			}
		}
		else
		{
			//assert(false);
			// packet malformed drop
		}