OpenClovis Logo

clEoConfigApi.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2012 OpenClovis Solutions Inc. All Rights Reserved.
3  *
4  * This file is available under a commercial license from the
5  * copyright holder or the GNU General Public License Version 2.0.
6  *
7  * The source code for this program is not published or otherwise
8  * divested of its trade secrets, irrespective of what has been
9  * deposited with the U.S. Copyright office.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * General Public License for more details.
15  *
16  * For more information, see the file COPYING provided with this
17  * material.
18  */
19 /*******************************************************************************
20  * ModuleName : eo
21  * File : clEoConfigApi.h
22  *******************************************************************************/
23 
24 /*******************************************************************************
25  * Description :
26  * This header contains Execution Object [EO] config definitions.
27  *
28  *
29  *****************************************************************************/
30 
45 #ifndef _CL_EO_CONFIG_API_H_
46 #define _CL_EO_CONFIG_API_H_
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 #include <clCommon.h>
53 
54 
55 /******************************************************************************
56  * Constant and Macro Definitions
57  *****************************************************************************/
58 
63 typedef ClUint64T ClEoIdT;
64 
68 #define CL_EO_MAX_NAME_LEN 32
69 
72 #define CL_EO_DEFAULT_THREADS 1
73 
77 #define CL_EO_NAME clEoNameGet()
78 
83 #define CL_EO_DEFAULT_NAME "3RD_PARTY_COMP"
84 
85 
86 
87 /******************************************************************************
88  * Data Types
89  *****************************************************************************/
90 
94 typedef enum {
95 
100 
105 
110 
115 
120 
125 
130 
135 
140 
145 
146 
147 } ClEoStateT;
148 
149 typedef enum {
150 
157 
165 
167 
168 typedef enum {
169 
175 
181 
187 
189 
194 typedef struct {
195 
200 
205 
207 
214 
218  CL_IN ClUint32T argc,
219 
223  CL_IN char *argv[]);
224 
225 
226 
241 
245  CL_IN ClEoStateT state);
246 
251 
256 
260  CL_OUT ClEoSchedFeedBackT *schFeedback);
261 
265 typedef ClRcT (*ClEoCustomActionT)(ClCompIdT compId, ClWaterMarkIdT wmId,
266  ClWaterMarkT *pWaterMark, ClEoWaterMarkFlagT wmType, ClEoActionArgListT argList);
267 
272 typedef struct {
273 
277  ClCharT EOname[CL_EO_MAX_NAME_LEN];
278 
283 
287  ClUint32T noOfThreads;
288 
293 
297  ClUint32T maxNoClients;
298 
303 
309 
315 
321 
327 
333 
334  ClBoolT needSerialization;
335 
336 }ClEoConfigT;
337 
341 ClRcT clEoProgNameGet(ClCharT *pName,ClUint32T maxSize);
342 
346 ClCharT* clEoNameGet(void);
347 
348 /***********************************************************************/
349 /* external symbols we expect here */
350 /***********************************************************************/
351 
352 /*
353  * This is the configuration for an EO. Since we can only do one EO
354  * per process in RC1, this can be here. But when support for multiple
355  * EOs per process shows up, this has to be fixed in some way.
356  */
357 
358 extern ClEoConfigT clEoConfig;
359 
360 extern ClCharT *clEoProgName;
361 
362 #ifdef __cplusplus
363 }
364 
365 #endif
366 
367 #endif /* _CL_EO_CONFIG_API_H_ */
368 

Generated on Tue Jan 10 10:29:15 PST 2012 for OpenClovis SDK using Doxygen