24#ifndef _IDARRAYREAD_H_
25#define _IDARRAYREAD_H_
35#define ODA_IDREAD_PAGESIZE 0xffff
45#if (defined (_MSC_VER) && _MSC_VER == 1200)
46 #define TEMPLATE_FUNC_RET_TYPE R*
47 #define TEMPLATE_FUNC_RETURN return 0;
49 #define TEMPLATE_FUNC_RET_TYPE void
50 #define TEMPLATE_FUNC_RETURN
53 template<
class R,
class A>
60 typename A::iterator pCurr = ids.begin();
61 for (
unsigned i = 0; i < nIdsSize; ++i)
70 OdUInt32 nIdsPagedSize = 0, nIndex = 0;
76 ids.reserve(nIdsPagedSize);
77 for ( ; nIndex < nIdsPagedSize; ++nIndex)
84 while (nIdsPagedSize < nIdsSize);
91 ids.reserve(nIdsPagedSize);
92 for ( ; nIndex < nIdsPagedSize; ++nIndex)
95 if (!
id.isNull() && !ids.contains(
id))
99 while (nIdsPagedSize < nIdsSize);
105 template<
class R,
class A>
108 typename A::const_iterator pCurr = ids.begin();
109 unsigned long i = ids.size();
115 R::write(pFiler, *pCurr++);
119 unsigned long count = 0;
122 if ( !pCurr->isErased() )
124 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)