24#ifndef _IDARRAYREAD_H_
25#define _IDARRAYREAD_H_
32#define ODA_IDREAD_PAGESIZE 0xffff
42#if (defined (_MSC_VER) && _MSC_VER == 1200)
43 #define TEMPLATE_FUNC_RET_TYPE R*
44 #define TEMPLATE_FUNC_RETURN return 0;
46 #define TEMPLATE_FUNC_RET_TYPE void
47 #define TEMPLATE_FUNC_RETURN
50 template<
class R,
class A>
57 typename A::iterator pCurr = ids.begin();
58 for (
unsigned i = 0; i < nIdsSize; ++i)
67 OdUInt32 nIdsPagedSize = 0, nIndex = 0;
73 ids.reserve(nIdsPagedSize);
74 for ( ; nIndex < nIdsPagedSize; ++nIndex)
81 while (nIdsPagedSize < nIdsSize);
88 ids.reserve(nIdsPagedSize);
89 for ( ; nIndex < nIdsPagedSize; ++nIndex)
92 if (!
id.isNull() && !ids.contains(
id))
96 while (nIdsPagedSize < nIdsSize);
102 template<
class R,
class A>
105 typename A::const_iterator pCurr = ids.begin();
106 unsigned long i = ids.size();
112 R::write(pFiler, *pCurr++);
116 unsigned long count = 0;
119 if ( !pCurr->isErased() )
121 R::write(pFiler, *pCurr);
#define TEMPLATE_FUNC_RET_TYPE
#define ODA_IDREAD_PAGESIZE
#define TEMPLATE_FUNC_RETURN
virtual void wrInt32(OdInt32 value)=0
virtual void wrHardOwnershipId(const OdDbObjectId &value)=0
virtual void wrHardPointerId(const OdDbObjectId &value)=0
virtual OdInt32 rdInt32()=0
virtual OdDbObjectId rdSoftPointerId()=0
virtual void wrSoftOwnershipId(const OdDbObjectId &value)=0
virtual OdDbObjectId rdHardOwnershipId()=0
virtual void wrSoftPointerId(const OdDbObjectId &value)=0
virtual OdDbObjectId rdSoftOwnershipId()=0
virtual OdDbObjectId rdHardPointerId()=0
virtual FilerType filerType() const =0
TEMPLATE_FUNC_RET_TYPE rdArray(OdDbDwgFiler *pFiler, A &ids, bool bSkipDuplicates=false)
TEMPLATE_FUNC_RET_TYPE wrArray(OdDbDwgFiler *pFiler, const A &ids)
static OdDbObjectId read(OdDbDwgFiler *pFiler)
static void write(OdDbDwgFiler *pFiler, const OdDbObjectId &id)
static void write(OdDbDwgFiler *pFiler, const OdDbObjectId &id)
static OdDbObjectId read(OdDbDwgFiler *pFiler)
static void write(OdDbDwgFiler *pFiler, const OdDbObjectId &id)
static OdDbObjectId read(OdDbDwgFiler *pFiler)
static void write(OdDbDwgFiler *pFiler, const OdDbObjectId &id)
static OdDbObjectId read(OdDbDwgFiler *pFiler)