Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccMpeXmlFactory.h
Go to the documentation of this file.
1/** @file
2 File: IccMpeXmlFactory.h
3
4 Contains: Header for implementation of CIccMpeXmlFactory class and
5 creation factories
6
7 Version: V1
8
9 Copyright: (c) see ICC Software License
10*/
11
12/*
13 * The ICC Software License, Version 0.2
14 *
15 *
16 * Copyright (c) 2003-2012 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// -Feb 4, 2006
69// A CIccMpeCreator singleton class has been added to provide general
70// support for dynamically creating element classes using a element signature.
71// Prototype and private element type support can be added to the system
72// by pushing additional IIccMpeFactory based objects to the
73// singleton CIccMpeCreator object.
74//
75// -Nov 6, 2006
76// Merged into release
77//
78//////////////////////////////////////////////////////////////////////
79
80#ifndef _ICCMPEXMLFACTORY_H
81#define _ICCMPEXMLFACTORY_H
82
83#include "IccMpeFactory.h"
84#include "IccDefs.h"
85#include <memory>
86#include <list>
87
88//CIccProcessElement factory support
89#ifdef USEREFICCMAXNAMESPACE
90namespace refIccMAX {
91#endif
92
93
94
95/**
96 ***********************************************************************
97 * Class: CIccMpeXmlFactory
98 *
99 * Purpose:
100 * CIccMpeXmlFactory provides creation of CIccProcessElement's
101 * defined by the ICC profile specification. The CIccMpeCreator always
102 * creates a CIccBasicElemFactory.
103 ***********************************************************************
104 */
106{
107public:
108 /**
109 * Function: CreateElement(elemTypeSig)
110 * Create a element of type elemTypeSig.
111 *
112 * Parameter(s):
113 * elemTypeSig = signature of the ICC element type for the element to be created
114 *
115 * Returns a new CIccProcessElement object of the given signature type.
116 * Unrecognized elemTypeSig's will be created as a CIccProcessElementUnknown object.
117 */
118 virtual CIccMultiProcessElement* CreateElement(icElemTypeSignature elementSig);
119
120 /**
121 * Function: GetElementSigName(elemTypeSig)
122 * Get display name of elemTypeSig.
123 *
124 * Parameter(s):
125 * elemName = string to put element name into,
126 * elemTypeSig = signature of the ICC element type to get a name for
127 *
128 * Returns true if element type is recognized by the factory, false if the
129 * factory doesn't create elemTypeSig elements.
130 */
131 virtual bool GetElementSigName(std::string &elemName, icElemTypeSignature elemTypeSig);
132};
133
134
135#ifdef USEREFICCMAXNAMESPACE
136} //namespace refIccMAX
137#endif
138
139#endif //_ICCMPEXMLFACTORY_H
File: IccDefs.h
File: IccMpeFactory.h.
Class: CIccMpeXmlFactory.
Class: CIccMultiProcessElement.
Definition IccTagMPE.h:146
Class: IIccMpeFactory.
icElemTypeSignature
Multi-Processing Element type signatures.