Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccTagProfSeqId.h
Go to the documentation of this file.
1/** @file
2File: IccTagProfSeqId.h
3
4Contains: Header for implementation of CIccTagProfSeqId
5and supporting classes
6
7Version: V1
8
9Copyright: (c) see ICC Software License
10*/
11
12/*
13* The ICC Software License, Version 0.2
14*
15*
16* Copyright (c) 2005 The International Color Consortium. All rights
17* reserved.
18*
19* Redistribution and use in source and binary forms, with or without
20* modification, are permitted provided that the following conditions
21* are met:
22*
23* 1. Redistributions of source code must retain the above copyright
24* notice, this list of conditions and the following disclaimer.
25*
26* 2. Redistributions in binary form must reproduce the above copyright
27* notice, this list of conditions and the following disclaimer in
28* the documentation and/or other materials provided with the
29* distribution.
30*
31* 3. In the absence of prior written permission, the names "ICC" and "The
32* International Color Consortium" must not be used to imply that the
33* ICC organization endorses or promotes products derived from this
34* software.
35*
36*
37* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40* DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
41* ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48* SUCH DAMAGE.
49* ====================================================================
50*
51* This software consists of voluntary contributions made by many
52* individuals on behalf of the The International Color Consortium.
53*
54*
55* Membership in the ICC is encouraged when this software is used for
56* commercial purposes.
57*
58*
59* For more information on The International Color Consortium, please
60* see <http://www.color.org/>.
61*
62*
63*/
64
65//////////////////////////////////////////////////////////////////////
66// HISTORY:
67//
68// -Jun 3, 2007
69// Initial CIccTagProfSeqId development
70//
71//////////////////////////////////////////////////////////////////////
72
73#ifndef _ICCTAGPROFSEQID_H
74#define _ICCTAGPROFSEQID_H
75
76#include "IccProfile.h"
77#include "IccTag.h"
78#include <memory>
79#include <list>
80
81#ifdef USEREFICCMAXNAMESPACE
82namespace refIccMAX {
83#endif
84
86{
87public:
89 CIccProfileIdDesc(CIccProfile &profile);
92 CIccProfileIdDesc &operator=(const CIccProfileIdDesc &pid);
93
94 void Describe(std::string &sDescription, int nVerboseness);
95
96 bool Read(icUInt32Number size, CIccIO *pIO);
97 bool Write(CIccIO *pIO);
98
99 icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile=NULL) const;
100
103};
104
105typedef std::list<CIccProfileIdDesc> CIccProfileIdDescList;
106
107/**
108****************************************************************************
109* Class: CIccTagProfileSequenceId
110*
111* Purpose: The ProfileSequenceId tag
112*****************************************************************************
113*/
115{
116public:
120 virtual CIccTag *NewCopy() const { return new CIccTagProfileSequenceId(*this);}
122
123 static CIccTagProfileSequenceId *ParseMem(icUInt8Number *pMem, icUInt32Number size);
124
126 virtual const icChar *GetClassName() const { return "CIccTagProfileSequenceId"; }
127
128 virtual void Describe(std::string &sDescription, int nVerboseness);
129
130 virtual bool Read(icUInt32Number size, CIccIO *pIO);
131 virtual bool Write(CIccIO *pIO);
132
133 virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile=NULL) const;
134
135 bool AddProfileDescription(CIccProfile &profile) { return AddProfileDescription(CIccProfileIdDesc(profile)); }
136 bool AddProfileDescription(const CIccProfileIdDesc &profileDesc);
137
138 CIccProfileIdDesc *GetFirst();
139 CIccProfileIdDesc *GetLast();
140
141 CIccProfileIdDescList::iterator begin() { return m_list->begin(); }
142 CIccProfileIdDescList::iterator end() { return m_list->end(); }
143
144protected:
145 void Cleanup();
146
148};
149
150
151
152//CIccTagProfSeq support
153#ifdef USEREFICCMAXNAMESPACE
154}
155#endif
156
157#endif //_ICCTAGPROFSEQID_H
char icChar
Definition IccDefs.h:109
icValidateStatus
Definition IccDefs.h:118
#define ICCPROFLIB_API
File: IccProfile.h.
File: IccTag.h.
std::list< CIccProfileIdDesc > CIccProfileIdDescList
icTagTypeSignature
unsigned int icUInt32Number
Type: Class.
Definition IccIO.h:97
CIccTagMultiLocalizedUnicode m_desc
icProfileID m_profileID
Class: CIccTag.
Class: CIccTagMultiLocalizedUnicode.
Class: CIccTagProfileSequenceId.
virtual const icChar * GetClassName() const
CIccProfileIdDescList::iterator end()
bool AddProfileDescription(CIccProfile &profile)
CIccProfileIdDescList::iterator begin()
virtual icTagTypeSignature GetType() const
Function: GetType()
CIccProfileIdDescList * m_list
virtual CIccTag * NewCopy() const
Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
unsigned char icUInt8Number
Number definitions.
@ icSigProfileSequceIdType
Profile ID.