public int Compare(Object x, Object y) { TypeSnippet p1 = (TypeSnippet)x; IComparable ic1 = (IComparable)p1.type.Name; TypeSnippet p2 = (TypeSnippet)y; IComparable ic2 = (IComparable)p2.type.Name; return(ic1.CompareTo(ic2)); }
private static void CreateOutputFiles(StreamWriter header, StreamWriter cpp, FileLevelInfo info, string xml_support_dir) { string nSpace = info.nSpace; string commentText = "/* ******************************\n\tGENERATED CONTENT DO NOT ALTER!\n*********************************\n*/"; string nameSpaceText = "using namespace std;\nnamespace " + nSpace + " {"; cpp.WriteLine(commentText); cpp.WriteLine("#include \"" + nSpace + ".h\""); cpp.WriteLine(nameSpaceText); header.WriteLine(commentText); header.WriteLine("#ifndef _" + nSpace.ToUpper().Replace('-', '_') + "_H_"); header.WriteLine("#define _" + nSpace.ToUpper().Replace('-', '_') + "_H_"); header.WriteLine("#include <opendnp3/xml/APL/tinybinding.h>"); foreach (string include in info.includes.Keys) { Console.WriteLine("include: " + include); string dir = xml_support_dir; Console.WriteLine("include: " + include + " -> " + dir); header.WriteLine("#include <" + dir + "/" + include + ".h>"); } header.WriteLine(nameSpaceText); ArrayList orderOfParts = GetDeclarationOrder(info.typesToBind); foreach (Type t in orderOfParts) { TypeSnippet ts = (TypeSnippet)info.typesToBind[t]; header.WriteLine(ts.declaration); cpp.WriteLine(ts.definition); info.typesToBind.Remove(t); } foreach (TypeSnippet ts in info.typesToBind.Values) { Console.Error.WriteLine(ts.type.Name + " has missing dependencies:"); foreach (string s in ts.dependencies) { Console.Error.WriteLine("\t" + s); } Console.Error.WriteLine(ts.declaration); //Console.Error.WriteLine(ts.definition); } foreach (string s in info.unKnownSimpleTypes.Keys) { Console.Error.WriteLine("UnKnown type: " + s); } header.WriteLine("}\n#endif\n"); cpp.WriteLine("}"); }