Exemple #1
0
            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));
            }
Exemple #2
0
        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("}");
        }