Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
CIccMemIO Class Reference

Type: Class. More...

#include <IccIO.h>

+ Inheritance diagram for CIccMemIO:
+ Collaboration diagram for CIccMemIO:

Public Member Functions

bool Alloc (icUInt32Number nSize, bool bWrite=false)
 
bool Attach (icUInt8Number *pData, icUInt32Number nSize, bool bWrite=false)
 
 CIccMemIO ()
 
virtual void Close ()
 
icUInt8NumberGetData ()
 
virtual icInt32Number GetLength ()
 
virtual icInt32Number Read8 (void *pBuf, icInt32Number nNum=1)
 
virtual icInt32Number Seek (icInt32Number nOffset, icSeekVal pos)
 
virtual icInt32Number Tell ()
 
virtual icInt32Number Write8 (void *pBuf, icInt32Number nNum=1)
 
virtual ~CIccMemIO ()
 
- Public Member Functions inherited from CIccIO
bool Align32 ()
 Write operation to make sure that filelength is evenly divisible by 4.
 
icInt32Number Read16 (void *pBuf16, icInt32Number nNum=1)
 
icInt32Number Read32 (void *pBuf32, icInt32Number nNum=1)
 
icInt32Number Read64 (void *pBuf64, icInt32Number nNum=1)
 
icInt32Number ReadFloat16Float (void *pBufFloat, icInt32Number nNum=1)
 
icInt32Number ReadFloat32Float (void *pBufFloat, icInt32Number nNum=1)
 
icInt32Number ReadLine (void *pBuf8, icInt32Number nNum=256)
 
icInt32Number ReadUInt16Float (void *pBufFloat, icInt32Number nNum=1)
 
icInt32Number ReadUInt8Float (void *pBufFloat, icInt32Number nNum=1)
 
bool Sync32 (icUInt32Number nOffset=0)
 Operation to make sure read position is evenly divisible by 4.
 
icInt32Number Write16 (void *pBuf16, icInt32Number nNum=1)
 
icInt32Number Write32 (void *pBuf32, icInt32Number nNum=1)
 
icInt32Number Write64 (void *pBuf64, icInt32Number nNum=1)
 
icInt32Number WriteFloat16Float (void *pBuf16, icInt32Number nNum=1)
 
icInt32Number WriteFloat32Float (void *pBufFloat, icInt32Number nNum=1)
 
icInt32Number WriteUInt16Float (void *pBuf16, icInt32Number nNum=1)
 
icInt32Number WriteUInt8Float (void *pBuf16, icInt32Number nNum=1)
 
virtual ~CIccIO ()
 

Protected Attributes

bool m_bFreeData
 
icUInt32Number m_nAvail
 
icUInt32Number m_nPos
 
icUInt32Number m_nSize
 
icUInt8Numberm_pData
 

Detailed Description

Type: Class.

Purpose: Handles generic memory IO

Definition at line 216 of file IccIO.h.

Constructor & Destructor Documentation

◆ CIccMemIO()

CIccMemIO::CIccMemIO ( )

Definition at line 649 of file IccIO.cpp.

649 : CIccIO()
650{
651 m_pData = NULL;
652 m_nSize = 0;
653 m_nAvail = 0;
654 m_nPos = 0;
655
656 m_bFreeData = false;
657}
Type: Class.
Definition IccIO.h:97
icUInt32Number m_nPos
Definition IccIO.h:241
icUInt32Number m_nSize
Definition IccIO.h:239
icUInt32Number m_nAvail
Definition IccIO.h:240
bool m_bFreeData
Definition IccIO.h:243
icUInt8Number * m_pData
Definition IccIO.h:238

References m_bFreeData, m_nAvail, m_nPos, m_nSize, and m_pData.

◆ ~CIccMemIO()

CIccMemIO::~CIccMemIO ( )
virtual

Definition at line 659 of file IccIO.cpp.

660{
661 Close();
662}
virtual void Close()
Definition IccIO.cpp:709

References Close().

+ Here is the call graph for this function:

Member Function Documentation

◆ Alloc()

bool CIccMemIO::Alloc ( icUInt32Number nSize,
bool bWrite = false )

Definition at line 665 of file IccIO.cpp.

666{
667 if (m_pData)
668 Close();
669
670 icUInt8Number *pData = (icUInt8Number*)malloc(nSize);
671
672 if (!pData)
673 return false;
674
675 if (!Attach(pData, nSize, bWrite)) {
676 free(pData);
677 return false;
678 }
679
680 m_bFreeData = true;
681
682 return true;
683}
bool Attach(icUInt8Number *pData, icUInt32Number nSize, bool bWrite=false)
Definition IccIO.cpp:686
unsigned char icUInt8Number
Number definitions.

References Attach(), Close(), m_bFreeData, and m_pData.

Referenced by OpenProfile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Attach()

bool CIccMemIO::Attach ( icUInt8Number * pData,
icUInt32Number nSize,
bool bWrite = false )

Definition at line 686 of file IccIO.cpp.

687{
688 if (!pData)
689 return false;
690
691 if (m_pData)
692 Close();
693
694 m_pData = pData;
695 m_nPos = 0;
696
697 if (bWrite) {
698 m_nAvail = nSize;
699 m_nSize = 0;
700 }
701 else {
702 m_nAvail = m_nSize = nSize;
703 }
704
705 return true;
706}

References Close(), m_nAvail, m_nPos, m_nSize, and m_pData.

Referenced by Alloc(), OpenIccProfile(), CIccTagProfileSequenceId::ParseMem(), CIccTagStruct::ParseMem(), and ReadIccProfile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Close()

void CIccMemIO::Close ( )
virtual

Reimplemented from CIccIO.

Definition at line 709 of file IccIO.cpp.

710{
711 if (m_pData) {
712 if (m_bFreeData) {
713 free(m_pData);
714
715 m_bFreeData = false;
716 }
717 m_pData = NULL;
718 }
719}

References m_bFreeData, and m_pData.

Referenced by Alloc(), Attach(), and ~CIccMemIO().

+ Here is the caller graph for this function:

◆ GetData()

icUInt8Number * CIccMemIO::GetData ( )
inline

Definition at line 235 of file IccIO.h.

235{ return m_pData; }

Referenced by MyTagDialog::MyTagDialog(), and OpenProfile().

+ Here is the caller graph for this function:

◆ GetLength()

icInt32Number CIccMemIO::GetLength ( )
virtual

Reimplemented from CIccIO.

Definition at line 752 of file IccIO.cpp.

753{
754 if (!m_pData)
755 return 0;
756
757 return m_nSize;
758}

References m_nSize, and m_pData.

Referenced by MyTagDialog::MyTagDialog().

+ Here is the caller graph for this function:

◆ Read8()

icInt32Number CIccMemIO::Read8 ( void * pBuf,
icInt32Number nNum = 1 )
virtual

Reimplemented from CIccIO.

Definition at line 722 of file IccIO.cpp.

723{
724 if (!m_pData)
725 return 0;
726 if (nNum > 0) {
727 nNum = __min((icInt32Number) (m_nSize - m_nPos), nNum);
728 memcpy(pBuf, m_pData + m_nPos, nNum);
729 m_nPos += nNum;
730 }
731 return nNum;
732}
#define __min
long icInt32Number

References __min, m_nPos, m_nSize, and m_pData.

◆ Seek()

icInt32Number CIccMemIO::Seek ( icInt32Number nOffset,
icSeekVal pos )
virtual

Reimplemented from CIccIO.

Definition at line 761 of file IccIO.cpp.

762{
763 if (!m_pData)
764 return -1;
765
766 icInt32Number nPos;
767 switch(pos) {
768 case icSeekSet:
769 nPos = nOffset;
770 break;
771 case icSeekCur:
772 nPos = (icInt32Number)m_nPos + nOffset;
773 break;
774 case icSeekEnd:
775 nPos = (icInt32Number)m_nSize + nOffset;
776 break;
777 default:
778 nPos = 0;
779 break;
780 }
781
782 if (nPos < 0)
783 return -1;
784
785 icUInt32Number uPos = (icUInt32Number)nPos;
786
787 if (uPos > m_nSize && m_nSize != m_nAvail && uPos <=m_nAvail) {
788 memset(m_pData+m_nSize, 0, (icInt32Number)(uPos - m_nSize));
789 m_nSize = uPos;
790 }
791 if (uPos > m_nSize)
792 return -1;
793
794 m_nPos = uPos;
795
796 return nPos;
797}
@ icSeekEnd
Definition IccIO.h:85
@ icSeekSet
Definition IccIO.h:83
@ icSeekCur
Definition IccIO.h:84
unsigned int icUInt32Number

References icSeekCur, icSeekEnd, icSeekSet, m_nAvail, m_nPos, m_nSize, and m_pData.

◆ Tell()

icInt32Number CIccMemIO::Tell ( )
virtual

Reimplemented from CIccIO.

Definition at line 800 of file IccIO.cpp.

801{
802 if (!m_pData)
803 return -1;
804
805 return (icInt32Number)m_nPos;
806}

References m_nPos, and m_pData.

◆ Write8()

icInt32Number CIccMemIO::Write8 ( void * pBuf,
icInt32Number nNum = 1 )
virtual

Reimplemented from CIccIO.

Definition at line 735 of file IccIO.cpp.

736{
737 if (!m_pData)
738 return 0;
739
740 nNum = __min((icInt32Number)(m_nAvail-m_nPos), nNum);
741
742 memcpy(m_pData + m_nPos, pBuf, nNum);
743
744 m_nPos += nNum;
745 if (m_nPos > m_nSize)
746 m_nSize = m_nPos;
747
748 return nNum;
749}

References __min, m_nAvail, m_nPos, m_nSize, and m_pData.

Member Data Documentation

◆ m_bFreeData

bool CIccMemIO::m_bFreeData
protected

Definition at line 243 of file IccIO.h.

Referenced by Alloc(), CIccMemIO(), and Close().

◆ m_nAvail

icUInt32Number CIccMemIO::m_nAvail
protected

Definition at line 240 of file IccIO.h.

Referenced by Attach(), CIccMemIO(), Seek(), and Write8().

◆ m_nPos

icUInt32Number CIccMemIO::m_nPos
protected

Definition at line 241 of file IccIO.h.

Referenced by Attach(), CIccMemIO(), Read8(), Seek(), Tell(), and Write8().

◆ m_nSize

icUInt32Number CIccMemIO::m_nSize
protected

Definition at line 239 of file IccIO.h.

Referenced by Attach(), CIccMemIO(), GetLength(), Read8(), Seek(), and Write8().

◆ m_pData

icUInt8Number* CIccMemIO::m_pData
protected

Definition at line 238 of file IccIO.h.

Referenced by Alloc(), Attach(), CIccMemIO(), Close(), GetLength(), Read8(), Seek(), Tell(), and Write8().


The documentation for this class was generated from the following files: