1 /*****************************************************************************/
2 // Copyright 2006-2007 Adobe Systems Incorporated
3 // All Rights Reserved.
4 //
5 // NOTICE:  Adobe permits you to use, modify, and distribute this file in
6 // accordance with the terms of the Adobe license agreement accompanying it.
7 /*****************************************************************************/
8 
9 /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_string_list.h#1 $ */
10 /* $DateTime: 2012/05/30 13:28:51 $ */
11 /* $Change: 832332 $ */
12 /* $Author: tknoll $ */
13 
14 /*****************************************************************************/
15 
16 #ifndef __dng_string_list__
17 #define __dng_string_list__
18 
19 /*****************************************************************************/
20 
21 #include "dng_classes.h"
22 #include "dng_types.h"
23 
24 /*****************************************************************************/
25 
26 class dng_string_list
27 	{
28 
29 	private:
30 
31 		uint32 fCount;
32 
33 		uint32 fAllocated;
34 
35 		dng_string **fList;
36 
37 	public:
38 
39 		dng_string_list ();
40 
41 		~dng_string_list ();
42 
Count()43 		uint32 Count () const
44 			{
45 			return fCount;
46 			}
47 
48 		dng_string & operator[] (uint32 index)
49 			{
50 			return *(fList [index]);
51 			}
52 
53 		const dng_string & operator[] (uint32 index) const
54 			{
55 			return *(fList [index]);
56 			}
57 
58 		void Allocate (uint32 minSize);
59 
60 		void Insert (uint32 index,
61 					 const dng_string &s);
62 
Append(const dng_string & s)63 		void Append (const dng_string &s)
64 			{
65 			Insert (Count (), s);
66 			}
67 
68 		bool Contains (const dng_string &s) const;
69 
70 		void Clear ();
71 
72 	private:
73 
74 		// Hidden copy constructor and assignment operator.
75 
76 		dng_string_list (const dng_string_list &list);
77 
78 		dng_string_list & operator= (const dng_string_list &list);
79 
80 	};
81 
82 /*****************************************************************************/
83 
84 #endif
85 
86 /*****************************************************************************/
87