#ifndef _h_BinaryData_
#define _h_BinaryData_
#include "FMXClient.h"
#include "FMXTypes.h"
extern "C++"
{
namespace fmx
{
class BinaryData
{
public:
inline BinaryData &operator = ( const BinaryData &source );
inline bool operator == ( const BinaryData &compareData ) const;
inline bool operator != ( const BinaryData &compareData ) const;
inline int32 GetCount () const;
inline int32 GetIndex ( const QuadChar& dataType ) const;
inline uint32 GetTotalSize () const;
inline void GetType ( int32 index, QuadChar& dataType ) const;
inline uint32 GetSize ( int32 index ) const;
inline errcode GetData ( int32 index, uint32 offset, uint32 amount, void *buffer ) const;
inline errcode Add ( const QuadChar& dataType, uint32 amount, void *buffer );
inline bool Remove ( const QuadChar& dataType );
inline void RemoveAll ();
inline void operator delete ( void *obj );
inline errcode GetFNAMData ( Text &filepathlist ) const;
inline errcode AddFNAMData ( const Text &filepathlist );
inline errcode GetSIZEData ( short &width, short &height ) const;
inline errcode AddSIZEData ( short width, short height );
inline errcode AddBegin ( const QuadChar& dataType, uint32* context );
inline errcode AddAppend ( uint32 context, uint32 amount, void *buffer );
inline errcode AddFinish ( uint32 context );
private:
BinaryData ();
BinaryData ( const BinaryData &source );
};
#if FMX_USE_AUTO_PTR
class DEPRECATED BinaryDataAutoPtr : public std::auto_ptr<BinaryData>
{
typedef BinaryDataAutoPtr UpCaster;
public:
inline BinaryDataAutoPtr ();
inline BinaryDataAutoPtr ( const BinaryData &sourceData );
inline BinaryDataAutoPtr ( const Text &name, uint32 amount, void *buffer );
inline BinaryDataAutoPtr ( const Text &name, uint32* context );
};
#endif
#if FMX_USE_UNIQUE_PTR
class BinaryDataUniquePtr : public std::unique_ptr<BinaryData>
{
typedef BinaryDataUniquePtr UpCaster;
public:
inline BinaryDataUniquePtr ();
inline BinaryDataUniquePtr ( const BinaryData &sourceData );
inline BinaryDataUniquePtr ( const Text &name, uint32 amount, void *buffer );
inline BinaryDataUniquePtr ( const Text &name, uint32* context );
};
#endif
}
}
extern "C"
{
fmx::BinaryData FMX_API *FM_BinaryData_Constructor1 ( fmx::_fmxcpt &_x ) throw ();
fmx::BinaryData FMX_API *FM_BinaryData_Constructor2 ( const fmx::BinaryData &sourceData, fmx::_fmxcpt &_x ) throw ();
fmx::BinaryData FMX_API *FM_BinaryData_Constructor3 ( const fmx::Text &name, fmx::uint32 amount, void *buffer, fmx::_fmxcpt &_x ) throw ();
fmx::BinaryData FMX_API *FM_BinaryData_Constructor4 ( const fmx::Text &name, fmx::uint32* context, fmx::_fmxcpt &_x ) throw ();
fmx::BinaryData FMX_API *FM_BinaryData_operatorAS ( void *_self, const fmx::BinaryData &source, fmx::_fmxcpt &_x ) throw ();
bool FMX_API FM_BinaryData_operatorEQ ( const void *_self, const fmx::BinaryData &compareData, fmx::_fmxcpt &_x ) throw ();
bool FMX_API FM_BinaryData_operatorNE ( const void *_self, const fmx::BinaryData &compareData, fmx::_fmxcpt &_x ) throw ();
fmx::int32 FMX_API FM_BinaryData_GetCount ( const void *_self, fmx::_fmxcpt &_x ) throw ();
fmx::int32 FMX_API FM_BinaryData_GetIndex ( const void *_self, const fmx::QuadChar& dataType, fmx::_fmxcpt &_x ) throw ();
fmx::uint32 FMX_API FM_BinaryData_GetTotalSize ( const void *_self, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_BinaryData_GetType ( const void *_self, fmx::int32 index, fmx::QuadChar& dataType, fmx::_fmxcpt &_x ) throw ();
fmx::uint32 FMX_API FM_BinaryData_GetSize ( const void *_self, fmx::int32 index, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_GetData ( const void *_self, fmx::int32 index, fmx::uint32 offset, fmx::uint32 amount, void *buffer, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_Add ( void *_self, const fmx::QuadChar& dataType, fmx::uint32 amount, void *buffer, fmx::_fmxcpt &_x ) throw ();
bool FMX_API FM_BinaryData_Remove ( void *_self, const fmx::QuadChar& dataType, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_BinaryData_RemoveAll ( void *_self, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_BinaryData_Delete ( void *_self, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_GetFNAMData ( const void *_self, fmx::Text &filepathlist, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_AddFNAMData ( void *_self, const fmx::Text &filepathlist, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_GetSIZEData ( const void *_self, short &width, short &height, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_AddSIZEData ( void *_self, short width, short height, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_AddBegin ( void *_self, const fmx::QuadChar& dataType, fmx::uint32* context, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_AddAppend ( void *_self, fmx::uint32 context, fmx::uint32 amount, void *buffer, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_BinaryData_AddFinish ( void *_self, fmx::uint32 context, fmx::_fmxcpt &_x ) throw ();
}
extern "C++"
{
namespace fmx
{
inline BinaryData &BinaryData::operator = ( const BinaryData &source )
{
_fmxcpt _x;
BinaryData *_rtn = FM_BinaryData_operatorAS ( this, source, _x );
_x.Check ();
return *_rtn;
}
inline bool BinaryData::operator == ( const BinaryData &compareData ) const
{
_fmxcpt _x;
bool _rtn = FM_BinaryData_operatorEQ ( this, compareData, _x );
_x.Check ();
return _rtn;
}
inline bool BinaryData::operator != ( const BinaryData &compareData ) const
{
_fmxcpt _x;
bool _rtn = FM_BinaryData_operatorNE ( this, compareData, _x );
_x.Check ();
return _rtn;
}
inline int32 BinaryData::GetCount () const
{
_fmxcpt _x;
int32 _rtn = FM_BinaryData_GetCount ( this, _x );
_x.Check ();
return _rtn;
}
inline int32 BinaryData::GetIndex ( const QuadChar& dataType ) const
{
_fmxcpt _x;
int32 _rtn = FM_BinaryData_GetIndex ( this, dataType, _x );
_x.Check ();
return _rtn;
}
inline uint32 BinaryData::GetTotalSize () const
{
_fmxcpt _x;
uint32 _rtn = FM_BinaryData_GetTotalSize ( this, _x );
_x.Check ();
return _rtn;
}
inline void BinaryData::GetType ( int32 index, QuadChar& dataType ) const
{
_fmxcpt _x;
FM_BinaryData_GetType ( this, index, dataType, _x );
_x.Check ();
}
inline uint32 BinaryData::GetSize ( int32 index ) const
{
_fmxcpt _x;
uint32 _rtn = FM_BinaryData_GetSize ( this, index, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::GetData ( int32 index, uint32 offset, uint32 amount, void *buffer ) const
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_GetData ( this, index, offset, amount, buffer, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::Add ( const QuadChar& dataType, uint32 amount, void *buffer )
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_Add ( this, dataType, amount, buffer, _x );
_x.Check ();
return _rtn;
}
inline bool BinaryData::Remove ( const QuadChar& dataType )
{
_fmxcpt _x;
bool _rtn = FM_BinaryData_Remove ( this, dataType, _x );
_x.Check ();
return _rtn;
}
inline void BinaryData::RemoveAll ()
{
_fmxcpt _x;
FM_BinaryData_RemoveAll ( this, _x );
_x.Check ();
}
inline void BinaryData::operator delete ( void *obj )
{
_fmxcpt _x;
FM_BinaryData_Delete ( obj, _x );
_x.Check ();
}
#if FMX_USE_AUTO_PTR
inline BinaryDataAutoPtr::BinaryDataAutoPtr ()
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor1 ( _x ) );
_x.Check ();
}
inline BinaryDataAutoPtr::BinaryDataAutoPtr ( const BinaryData &sourceData )
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor2 ( sourceData, _x ) );
_x.Check ();
}
inline BinaryDataAutoPtr::BinaryDataAutoPtr ( const Text &name, uint32 amount, void *buffer )
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor3 ( name, amount, buffer, _x ) );
_x.Check ();
}
inline BinaryDataAutoPtr::BinaryDataAutoPtr ( const Text &name, fmx::uint32* context )
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor4 ( name, context, _x ) );
_x.Check ();
}
#endif
#if FMX_USE_UNIQUE_PTR
inline BinaryDataUniquePtr::BinaryDataUniquePtr ()
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor1 ( _x ) );
_x.Check ();
}
inline BinaryDataUniquePtr::BinaryDataUniquePtr ( const BinaryData &sourceData )
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor2 ( sourceData, _x ) );
_x.Check ();
}
inline BinaryDataUniquePtr::BinaryDataUniquePtr ( const Text &name, uint32 amount, void *buffer )
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor3 ( name, amount, buffer, _x ) );
_x.Check ();
}
inline BinaryDataUniquePtr::BinaryDataUniquePtr ( const Text &name, fmx::uint32* context )
{
_fmxcpt _x;
reset ( FM_BinaryData_Constructor4 ( name, context, _x ) );
_x.Check ();
}
#endif
inline errcode BinaryData::GetFNAMData ( Text &filepathlist ) const
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_GetFNAMData ( this, filepathlist, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::AddFNAMData ( const Text &filepathlist )
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_AddFNAMData ( this, filepathlist, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::GetSIZEData ( short &width, short &height ) const
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_GetSIZEData ( this, width, height, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::AddSIZEData ( short width, short height )
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_AddSIZEData ( this, width, height, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::AddBegin ( const QuadChar& dataType, uint32* context )
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_AddBegin ( this, dataType, context, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::AddAppend ( uint32 context, uint32 amount, void *buffer )
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_AddAppend ( this, context, amount, buffer, _x );
_x.Check ();
return _rtn;
}
inline errcode BinaryData::AddFinish ( uint32 context )
{
_fmxcpt _x;
errcode _rtn = FM_BinaryData_AddFinish ( this, context, _x );
_x.Check ();
return _rtn;
}
}
}
#endif