new format for technology
technology is now a private property of Hurricane Technology
This commit is contained in:
parent
7ceb8530f2
commit
3ada159bd7
|
@ -1,4 +1,5 @@
|
||||||
ADD_SUBDIRECTORY(dtr)
|
ADD_SUBDIRECTORY(dtr)
|
||||||
|
ADD_SUBDIRECTORY(technology)
|
||||||
ADD_SUBDIRECTORY(analogic)
|
ADD_SUBDIRECTORY(analogic)
|
||||||
ADD_SUBDIRECTORY(device)
|
ADD_SUBDIRECTORY(device)
|
||||||
ADD_SUBDIRECTORY(tests)
|
ADD_SUBDIRECTORY(tests)
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include "Technology.h"
|
||||||
|
#include "Property.h"
|
||||||
|
using namespace Hurricane;
|
||||||
|
|
||||||
|
#include "ATechnology.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
static Name ATechnologyPropertyName("ATechnologyProperty");
|
||||||
|
|
||||||
|
class ATechnologyProperty : public PrivateProperty {
|
||||||
|
public:
|
||||||
|
typedef PrivateProperty Inherit;
|
||||||
|
static ATechnologyProperty* create(Technology* technology);
|
||||||
|
ATechnologyProperty();
|
||||||
|
virtual Name getName() const {
|
||||||
|
return ATechnologyPropertyName;
|
||||||
|
}
|
||||||
|
virtual string _getTypeName() const {
|
||||||
|
return _TName("ATechnologyProperty");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
ATechnologyProperty::ATechnologyProperty():
|
||||||
|
Inherit()
|
||||||
|
{}
|
||||||
|
|
||||||
|
ATechnologyProperty* ATechnologyProperty::create(Technology* technology) {
|
||||||
|
ATechnologyProperty* prop = new ATechnologyProperty();
|
||||||
|
|
||||||
|
prop->_postCreate();
|
||||||
|
|
||||||
|
technology->put(prop);
|
||||||
|
|
||||||
|
return prop;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef ATECHNOLOGY_H_
|
||||||
|
#define ATECHNOLOGY_H_
|
||||||
|
|
||||||
|
class ATechnology {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* ATECHNOLOGY_H_*/
|
|
@ -0,0 +1,8 @@
|
||||||
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${HURRICANE_INCLUDE_DIR})
|
||||||
|
|
||||||
|
ADD_LIBRARY(atechnology SHARED
|
||||||
|
ATechnology.cpp TechnologyXmlParser.cpp)
|
||||||
|
|
||||||
|
TARGET_LINK_LIBRARIES(atechnology ${HURRICANE_LIBRARIES} ${LIBXML2_LIBRARIES})
|
||||||
|
|
||||||
|
INSTALL(TARGETS atechnology DESTINATION /lib)
|
|
@ -0,0 +1,43 @@
|
||||||
|
#include <libxml/parser.h>
|
||||||
|
#include <libxml/tree.h>
|
||||||
|
|
||||||
|
#include "Technology.h"
|
||||||
|
using namespace Hurricane;
|
||||||
|
|
||||||
|
#include "TechnologyXmlParser.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
ATechnology* parseFileAsTechnology(const char* filePath) {
|
||||||
|
xmlDocPtr doc; /* the resulting document tree */
|
||||||
|
|
||||||
|
doc = xmlReadFile(filePath, NULL, 0);
|
||||||
|
if (doc == NULL) {
|
||||||
|
fprintf(stderr, "Failed to parse %s\n", filePath);
|
||||||
|
exit(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Get the design element node */
|
||||||
|
xmlNode* rootElement = xmlDocGetRootElement(doc);
|
||||||
|
if (rootElement->type == XML_ELEMENT_NODE && xmlStrEqual(rootElement->name, (xmlChar*)"technology")) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ATechnology* parseTechnologyFromXml(const char* filePath, Technology* technology) {
|
||||||
|
|
||||||
|
LIBXML_TEST_VERSION
|
||||||
|
|
||||||
|
// Cell* rootCell = parseFileAsCell(filePath.c_str());
|
||||||
|
|
||||||
|
xmlCleanupParser();
|
||||||
|
/*
|
||||||
|
* this is to debug memory for regression tests
|
||||||
|
*/
|
||||||
|
|
||||||
|
xmlMemoryDump();
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#ifndef TECHNOLOGYXMLPARSER_H_
|
||||||
|
#define TECHNOLOGYXMLPARSER_H_
|
||||||
|
|
||||||
|
namespace Hurricane {
|
||||||
|
class Technology;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ATechnology;
|
||||||
|
|
||||||
|
class TechnologyXmlParser {
|
||||||
|
public:
|
||||||
|
static ATechnology* parseTechnologyFromXml(const char* filePath, Hurricane::Technology* technology);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*TECHNOLOGYXMLPARSER_H_*/
|
Loading…
Reference in New Issue