00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Svc_Conf.h 00006 * 00007 * $Id: Svc_Conf.h 78878 2007-07-13 16:54:03Z ossama $ 00008 * 00009 * @author Doug Schmidt 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef ACE_SVC_CONF_H 00015 #define ACE_SVC_CONF_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 // Globally visible macros, type decls, and extern var decls for 00020 // Service Configurator utility. 00021 00022 #include "ace/Obstack.h" 00023 00024 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00025 # pragma once 00026 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00027 00028 #include "ace/Service_Config.h" 00029 #include "ace/Parse_Node.h" 00030 00031 #include "ace/Svc_Conf_Param.h" 00032 00033 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00034 00035 #if (ACE_USES_CLASSIC_SVC_CONF == 1) 00036 00037 // The following yylex() declarations require support for reentrant 00038 // parser generation (e.g. from GNU Bison). 00039 #if defined (DEBUGGING) 00040 #if defined (ACE_YY_DECL) 00041 #undef ACE_YY_DECL 00042 #endif /* ACE_YY_DECL */ 00043 #define ACE_YY_DECL extern "C" char *ace_yylex (ACE_YYSTYPE *ace_yylval, void *ACE_YYLEX_PARAM) 00044 #else 00045 #define ACE_YY_DECL extern "C" int ace_yylex (ACE_YYSTYPE *ace_yylval, void *ACE_YYLEX_PARAM) 00046 #endif /* DEBUGGING */ 00047 00048 // Forward declarations 00049 class ACE_Location_Node; 00050 class ACE_Parse_Node; 00051 class ACE_Static_Node; 00052 class ACE_Service_Type_Factory; 00053 00054 // The following definition for the ACE_YYSTYPE must occur before 00055 // ACE_YY_DECL is declared since ACE_YY_DECL expands to function 00056 // prototypes that use ACE_YYSTYPE. 00057 typedef union 00058 { 00059 int type_; 00060 ACE_Location_Node *location_node_; 00061 ACE_Parse_Node *parse_node_; 00062 ACE_Static_Node *static_node_; 00063 ACE_Service_Type_Factory *svc_record_; 00064 ACE_TCHAR *ident_; 00065 } ACE_YYSTYPE; 00066 00067 // Forward declaration 00068 struct ace_yy_buffer_state; 00069 00070 /// Performs the parsing 00071 #ifdef ACE_YYPARSE_PARAM 00072 int ace_yyparse (void *); 00073 #else 00074 int ace_yyparse (void); 00075 #endif 00076 00077 /// Performs the lexical analysis 00078 ACE_YY_DECL; 00079 00080 /// Name of input stream 00081 extern FILE *ace_yyin; 00082 00083 /// Error handling routine required by YACC or BISON 00084 void ace_yyerror (int yyerrno, int yylineno, char const *); 00085 00086 /// Holds the lexeme for the current token 00087 extern ACE_TCHAR *ace_yytext; 00088 00089 /// Holds the length of the lexeme for the current token 00090 extern int ace_yyleng; 00091 00092 #endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */ 00093 00094 /// Factory that creates a new ACE_Service_Type_Impl. 00095 extern ACE_Service_Type_Impl * 00096 ace_create_service_type (const ACE_TCHAR *, 00097 int, 00098 void *, 00099 unsigned int, 00100 ACE_Service_Object_Exterminator = 0); 00101 00102 00103 ACE_END_VERSIONED_NAMESPACE_DECL 00104 00105 #include /**/ "ace/post.h" 00106 00107 #endif /* ACE_SVC_CONF_H */