| Irrlicht 3D Engine |

IAttributeExchangingObject.h
Go to the documentation of this file.

    00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
    00002 // This file is part of the "Irrlicht Engine".
    00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
    00004
    00005 #ifndef __I_ATTRIBUTE_EXCHANGING_OBJECT_H_INCLUDED__
    00006 #define __I_ATTRIBUTE_EXCHANGING_OBJECT_H_INCLUDED__
    00007
    00008 #include "IReferenceCounted.h"
    00009
    00010
    00011 namespace irr
    00012 {
    00013
    00014 namespace io
    00015 {
    00016
    00017 class IAttributes;
    00018
    00020 enum E_ATTRIBUTE_READ_WRITE_FLAGS
    00021 {
    00023     EARWF_FOR_FILE = 0x00000001,
    00024
    00026     EARWF_FOR_EDITOR = 0x00000002,
    00027
    00029     EARWF_USE_RELATIVE_PATHS = 0x00000004
    00030 };
    00031
    00032
    00034 struct SAttributeReadWriteOptions
    00035 {
    00037     SAttributeReadWriteOptions()
    00038         : Flags(0), Filename(0)
    00039     {
    00040     }
    00041
    00043     s32 Flags;
    00044
    00046     const fschar_t* Filename;
    00047 };
    00048
    00049
    00051 class IAttributeExchangingObject : virtual public IReferenceCounted
    00052 {
    00053 public:
    00054
    00056
    00058     virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
    00059
    00061
    00063     virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) {}
    00064
    00065 };
    00066
    00067 } // end namespace io
    00068 } // end namespace irr
    00069
    00070 #endif
    00071