BAG.HXX
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //+-------------------------------------------------------------------------
  2. //
  3. //  Copyright 1992 - 1997 Microsoft Corporation
  4. //
  5. //  File:       bag.hxx
  6. //
  7. //  Contents:   Bag for Html parsing elements
  8. //
  9. //--------------------------------------------------------------------------
  10. #if !defined( __BAG_HXX__ )
  11. #define __BAG_HXX__
  12. class CHtmlElement;
  13. const COUNT_OF_HTML_ELEMENTS = 14;
  14. //+-------------------------------------------------------------------------
  15. //
  16. //  Class:      CHtmlElemBagEntry
  17. //
  18. //  Purpose:    Maps a Html token type to the corresponding parsing element
  19. //
  20. //--------------------------------------------------------------------------
  21. class CHtmlElemBagEntry
  22. {
  23. public:
  24.     CHtmlElemBagEntry();
  25.     ~CHtmlElemBagEntry();
  26.     void    SetHtmlElement( CHtmlElement *pHtmlElement )    { _pHtmlElement = pHtmlElement; }
  27.     CHtmlElement *GetHtmlElement()                          { return _pHtmlElement; }
  28.     void    SetTokenType( HtmlTokenType eTokType )          { _eTokType = eTokType; }
  29.     HtmlTokenType GetTokenType()                            { return _eTokType; }
  30. private:
  31.     CHtmlElement *      _pHtmlElement;
  32.     HtmlTokenType       _eTokType;
  33. };
  34. //+-------------------------------------------------------------------------
  35. //
  36. //  Class:      CHtmlElementBag
  37. //
  38. //  Purpose:    To add and retrieve elements for parsing Html in an extensible manner
  39. //
  40. //--------------------------------------------------------------------------
  41. class CHtmlElementBag
  42. {
  43. public:
  44.     CHtmlElementBag( unsigned cElems );
  45.     ~CHtmlElementBag();
  46.     void             AddElement( HtmlTokenType eTokType, CHtmlElement *pHtmlElement );
  47.     CHtmlElement *   QueryElement( HtmlTokenType eTokType );
  48. private:
  49.     CHtmlElemBagEntry *         _aBagEntry;
  50.     unsigned                    _uMaxSize;
  51.     unsigned                    _uCurSize;
  52. };
  53. #endif // __BAG_HXX__