📄 debug_attributes_builder.h
字号:
// -*- C++ -*-
//=============================================================================
/**
* @file Debug_Attributes_Builder.h
*
* Debug_Attributes_Builder.h,v 1.7 2003/07/19 19:04:10 dhinton Exp
*
* @author Nanbor Wang <nanbor@cs.wustl.edu>
*/
//=============================================================================
#ifndef _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_
#define _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_
#include /**/ "ace/pre.h"
#include "ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ACEXML/common/Attributes_Def_Builder.h"
#include "ace/Hash_Map_Manager.h"
#include "ace/Unbounded_Queue.h"
typedef ACE_Unbounded_Queue<ACEXML_String> ACEXML_STRING_QUEUE;
typedef ACE_Unbounded_Queue_Iterator<ACEXML_String> ACEXML_STRING_QUEUE_ITERATOR;
/**
* @class ACEXML_Debug_Attribute_Builder Debug_Attributes_Builder.h "parser/debug_validator/Debug_Attributes_Builder.h"
*
* This class prints out the Attribute definition for debugging purpose.
*/
class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_Attribute_Builder
: public ACEXML_Attribute_Def_Builder
{
public:
ACEXML_Debug_Attribute_Builder ();
ACEXML_Debug_Attribute_Builder (const ACEXML_Debug_Attribute_Builder &rhs);
virtual ~ACEXML_Debug_Attribute_Builder ();
/**
* Specify the name of the attribute.
*/
virtual int setName (const ACEXML_Char *n);
virtual const ACEXML_Char *getName (void);
/**
* Set the attribute type.
*/
virtual int setAttType (const ATT_TYPE type ACEXML_ENV_ARG_DECL)
ACE_THROW_SPEC ((ACEXML_SAXException)) ;
/**
* Insert an element for NOTATION or ENUMERATION type attribute.
*/
virtual int insertList (const ACEXML_Char *Name ACEXML_ENV_ARG_DECL)
ACE_THROW_SPEC ((ACEXML_SAXException)) ;
/**
* Set default attribute declaration.
*/
virtual int setDefault (const DEFAULT_DECL def,
const ACEXML_Char *value ACEXML_ENV_ARG_DECL)
ACE_THROW_SPEC ((ACEXML_SAXException))
;
/**
* Check validity of the current attribute definition being built.
*
* @retval 0 if the attribute is not a valid combo.
*/
virtual int validAttr (void);
/**
* Dump the content of the attribute definition.
*/
virtual void dump (void);
private:
/// Attribute name.
ACEXML_String name_;
/// Type of attribute.
ATT_TYPE type_;
/// Default value type.
DEFAULT_DECL default_decl_;
/// Default attribute value.
ACEXML_String default_value_;
/// Holds a queue of enumerated attribute values.
ACEXML_STRING_QUEUE att_value_queue_;
};
typedef ACE_Hash_Map_Entry<ACEXML_String,
ACEXML_Debug_Attribute_Builder> ACEXML_ATT_MAP_ENTRY;
typedef ACE_Hash_Map_Manager_Ex <ACEXML_String,
ACEXML_Debug_Attribute_Builder,
ACE_Hash<ACEXML_String>,
ACE_Equal_To<ACEXML_String>,
ACE_Null_Mutex> ACEXML_ATT_MAP;
typedef ACE_Hash_Map_Iterator_Ex<ACEXML_String,
ACEXML_Debug_Attribute_Builder,
ACE_Hash<ACEXML_String>,
ACE_Equal_To<ACEXML_String>,
ACE_Null_Mutex> ACEXML_ATT_MAP_ITER;
typedef ACE_Hash_Map_Reverse_Iterator_Ex<ACEXML_String,
ACEXML_Debug_Attribute_Builder,
ACE_Hash<ACEXML_String>,
ACE_Equal_To<ACEXML_String>,
ACE_Null_Mutex> ACEXML_ATT_MAP_REVERSE_ITER;
/**
* @class ACEXML_Debug_Attributes_Builder Debug_Attributes_Builder.h "parser/debug_validator/Debug_Attributes_Builder.h"
*
* This class prints out Attribute definitions for debugging purpose.
*/
class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_Attributes_Builder
: public ACEXML_Attributes_Def_Builder
{
public:
ACEXML_Debug_Attributes_Builder ();
virtual ~ACEXML_Debug_Attributes_Builder ();
/**
* Set the element name that the attribute builder applies.
*
* @retval 0 if valid, -1 otherwise.
*/
virtual int setElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
ACE_THROW_SPEC ((ACEXML_SAXException))
;
/**
* Acquire an Attribute_Builder.
*/
virtual ACEXML_Attribute_Def_Builder *getAttribute_Def_Builder ();
/**
* Add a definition for one attribute.
*/
virtual int insertAttribute (ACEXML_Attribute_Def_Builder *def ACEXML_ENV_ARG_DECL);
/**
* Dump the content of the attribute definition.
*/
virtual void dump (void);
protected:
/// The name of the element type these attributes applied.
ACEXML_String element_name_;
/// Collection of attributes.
ACEXML_ATT_MAP attributes_;
};
#include /**/ "ace/post.h"
#endif /* _ACEXML_DEBUG_ATTRIBUTES_BUILDER_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -