00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ACE_SVC_CONF_PARAM_H
00015 #define ACE_SVC_CONF_PARAM_H
00016
00017 #include "ace/pre.h"
00018
00019
00020
00021
00022 #include "ace/Obstack.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00029
00030
00031 struct ace_yy_buffer_state;
00032 class ACE_Service_Gestalt;
00033
00034 extern void ace_yy_delete_buffer (ace_yy_buffer_state *buffer);
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 class ACE_Svc_Conf_Param
00053 {
00054 public:
00055
00056 enum SVC_CONF_PARAM_TYPE
00057 {
00058
00059 SVC_CONF_FILE,
00060
00061
00062 SVC_CONF_DIRECTIVE
00063 };
00064
00065
00066 ACE_Svc_Conf_Param (ACE_Service_Gestalt* config, FILE *file)
00067 : type (SVC_CONF_FILE),
00068 yyerrno (0),
00069 yylineno (1),
00070 buffer (0),
00071 obstack (),
00072 config (config)
00073 {
00074 source.file = file;
00075 }
00076
00077
00078 ACE_Svc_Conf_Param (ACE_Service_Gestalt* config, const ACE_TCHAR *directive)
00079 : type (SVC_CONF_DIRECTIVE),
00080 yyerrno (0),
00081 yylineno (1),
00082 buffer (0),
00083 obstack (),
00084 config (config)
00085 {
00086 source.directive = directive;
00087 }
00088
00089 ~ACE_Svc_Conf_Param (void)
00090 {
00091 ace_yy_delete_buffer (this->buffer);
00092 }
00093
00094 public:
00095
00096 union
00097 {
00098
00099 FILE *file;
00100
00101
00102 const ACE_TCHAR *directive;
00103
00104 } source;
00105
00106
00107 SVC_CONF_PARAM_TYPE type;
00108
00109
00110 int yyerrno;
00111
00112
00113 int yylineno;
00114
00115
00116
00117 ace_yy_buffer_state *buffer;
00118
00119
00120
00121 ACE_Obstack_T<ACE_TCHAR> obstack;
00122
00123
00124 ACE_Service_Gestalt *config;
00125 };
00126
00127
00128
00129
00130 #define ACE_YYPARSE_PARAM ace_svc_conf_parameter
00131
00132 #define ACE_YYLEX_PARAM ACE_YYPARSE_PARAM
00133
00134 #define ACE_SVC_CONF_PARAM (static_cast<ACE_Svc_Conf_Param *> (ACE_YYLEX_PARAM))
00135
00136 ACE_END_VERSIONED_NAMESPACE_DECL
00137
00138 #include "ace/post.h"
00139
00140 #endif