Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

ACE_Svc_Conf_Lexer_Guard Class Reference

"Guard" that ensures lexer buffer switching is exception-safe. More...

#include <Svc_Conf_Lexer_Guard.h>

List of all members.

Public Methods

 ACE_Svc_Conf_Lexer_Guard (ACE_Svc_Conf_Param *param)
 Constructor.

 ~ACE_Svc_Conf_Lexer_Guard (void)
 Destructor.


Private Attributes

ace_yy_buffer_state * buffer_


Detailed Description

"Guard" that ensures lexer buffer switching is exception-safe.

Buffers are switched, if necessary, each time a token is parsed/scanned. The buffer switching must be synchronized externally. This class performs no synchronization.

Note:
Note that allocation/deallocation is done once during the processing of a service configurator directive. Memory managements is done at a higher level, not in this class. This is necessary to prevent an allocation/deallocation from occurring when parsing/scanning each token.


Constructor & Destructor Documentation

ACE_Svc_Conf_Lexer_Guard::ACE_Svc_Conf_Lexer_Guard ACE_Svc_Conf_Param   param
 

Constructor.

Switches buffers, if necessary, when token scanning first begins. Allocation of the buffer will also occur if one has not already been allocated. This operation effectively pushes a buffer on to a stack.

ACE_Svc_Conf_Lexer_Guard::~ACE_Svc_Conf_Lexer_Guard void   
 

Destructor.

Switches buffers, if necessary when token scanning completes. No buffer deallocation occurs here. Buffers are deallocated when parsing of the entire directive is done, not when scanning of a single token is done. This operation effective pops a buffer off of a stack.


Member Data Documentation

ace_yy_buffer_state* ACE_Svc_Conf_Lexer_Guard::buffer_ [private]
 

Lexer buffer that corresponds to the current Service Configurator file/direct scan.


The documentation for this class was generated from the following files:
Generated on Fri Apr 2 16:54:11 2004 for ACE by doxygen1.2.18