core/LibraryParser.h

Go to the documentation of this file.
00001 //============================================================================
00002 // Author      : Alessandro Pinto <apinto@eecs.berkeley.edu>
00003 //               University of California, Berkeley
00004 //               545 Cory Hall, Berkeley, CA 94720
00005 // Copyright   : See COPYING file that comes with this distribution
00006 //============================================================================
00007 
00008 #ifndef LIBRARYPARSER_H_
00009 #define LIBRARYPARSER_H_
00010 
00011 #include <string>
00012 #include <sstream>
00013 #include <map>
00014 #include <list>
00015 #include "NodeLinkLibrary.h"
00016 #include "Factory.h"
00017 #include "tinyxml.h"
00018 
00019 using namespace std;
00020 
00021 namespace cosi {
00022 
00023 class LibraryParser {
00024 public:
00025 
00026         LibraryParser(string pFname);
00027         virtual ~LibraryParser();
00028         void Parse();
00029         void Parse(TiXmlNode* pParent);
00030         NodeLinkLibrary* GetLibrary();
00031 
00032 private:
00033 
00034         void ParseDocument(TiXmlNode* pParent);
00035 
00036         // <Library>
00037         void ParseLibrary(TiXmlNode* pParent);
00038         void GetLibraryAttributes(TiXmlNode* pParent);
00039 
00040         // <Node>
00041         void ParseNode(TiXmlNode* pParent);
00042         void GetNodeAttributes(TiXmlNode* pParent);
00043 
00044         // <Interface>
00045         void ParseInterface(TiXmlNode* pParent);
00046         void GetInterfaceAttributes(TiXmlNode* pParent);
00047 
00048         // <Link>
00049         void ParseLink(TiXmlNode* pParent);
00050         void GetLinkAttributes(TiXmlNode* pParent);
00051 
00052         //<Source>
00053         void ParseLinkSource(TiXmlNode* pParent);
00054         void GetLinkSourceAttributes(TiXmlNode* pParent);
00055 
00056         //<Dest>
00057         void ParseLinkDest(TiXmlNode* pParent);
00058         void GetLinkDestAttributes(TiXmlNode* pParent);
00059 
00060         // <BiLink>
00061         void ParseBiLink(TiXmlNode* pParent);
00062         void GetBiLinkAttributes(TiXmlNode* pParent);
00063 
00064         string mFname;
00065         string mName;
00066         NodeLinkLibrary* mLib;
00067         Node mCurrentNode;
00068         Link mCurrentLink;
00069         BiLink mCurrentBiLink;
00070         string mCurrentDirection;
00071 
00072 };
00073 
00074 }
00075 
00076 #endif /*LIBRARYPARSER_H_*/

Generated on Sun Sep 7 18:37:42 2008 for COSI by  doxygen 1.5.4
Contact 
©2002-2018 U.C. Regents