public CPDotNetGenerator(string ns, ServiceGenerator.StackConfiguration Config) : base(Config)
 {
     if (ns != "")
     {
         nspace = ns;
     }
 }
        public static void Generate_WebServer(ServiceGenerator.StackConfiguration config, DirectoryInfo outputDir)
        {
            bool         Legacy = !config.HTTP_1dot1;
            string       PreFix = config.prefixlib;
            StreamWriter writer;
            string       lib;

            lib = GetEULA(PreFix + "WebServer.h", "") + RemoveOldEULA(ReadFileStore("ILibWebServer.h"));
            lib = lib.Replace("ILib", PreFix);

            writer = File.CreateText(outputDir.FullName + "\\" + PreFix + "WebServer.h");
            writer.Write(lib);
            writer.Close();

            lib = GetEULA(PreFix + "WebServer.c", "") + "\r\n";
            if (Legacy)
            {
                lib += "#define HTTPVERSION \"1.0\"";
            }
            else
            {
                lib += "#define HTTPVERSION \"1.1\"";
            }
            lib += RemoveOldEULA(ReadFileStore("ILibWebServer.c"));
            lib  = lib.Replace("ILib", PreFix);
            if (Legacy)
            {
                // Remove HTTP/1.1 Specific Code
                string xx = "//{{{ REMOVE_THIS_FOR_HTTP/1.0_ONLY_SUPPORT--> }}}";
                string yy = "//{{{ <--REMOVE_THIS_FOR_HTTP/1.0_ONLY_SUPPORT }}}";
                int    ix = lib.IndexOf(xx);
                int    iy;
                while (ix != -1)
                {
                    iy  = lib.IndexOf(yy) + yy.Length;
                    lib = lib.Remove(ix, iy - ix);
                    ix  = lib.IndexOf(xx);
                }
            }
            writer = File.CreateText(outputDir.FullName + "\\" + PreFix + "WebServer.c");
            writer.Write(lib);

            writer.Close();
        }
        public static void Generate_WebClient(ServiceGenerator.StackConfiguration config, DirectoryInfo outputDir)
        {
            bool   Legacy = !config.HTTP_1dot1;
            string PreFix = config.prefixlib;
            int    i;

            StreamWriter writer;
            string       lib;

            lib = GetEULA(PreFix + "WebClient.h", "") + RemoveOldEULA(ReadFileStore("ILibWebClient.h"));
            lib = lib.Replace("ILib", PreFix);

            //
            // Buffer Limitations
            //
            lib = ReplaceLine(lib, "#define INITIAL_BUFFER_SIZE", "#define INITIAL_BUFFER_SIZE " + config.InitialHTTPBufferSize.ToString() + "\n");
            i   = lib.IndexOf("#define MAX_HTTP_HEADER_SIZE");
            if (i != -1)
            {
                if (config.MaxHTTPHeaderSize > 0)
                {
                    lib = ReplaceLine(lib, "#define MAX_HTTP_HEADER_SIZE", "#define MAX_HTTP_HEADER_SIZE " + config.MaxHTTPHeaderSize.ToString() + "\n");
                }
                else
                {
                    lib = DeleteLine(lib, "#define MAX_HTTP_HEADER_SIZE");
                }
            }
            else
            {
                if (config.MaxHTTPHeaderSize > 0)
                {
                    i = GetIndexOfNextLine(lib, "#define INITIAL_BUFFER_SIZE");
                    if (i != -1)
                    {
                        lib = lib.Insert(i, "#define MAX_HTTP_HEADER_SIZE " + config.MaxHTTPHeaderSize.ToString() + "\n");
                    }
                }
            }
            i = lib.IndexOf("#define MAX_HTTP_PACKET_SIZE");
            if (i != -1)
            {
                if (config.MaxHTTPPacketSize > 0)
                {
                    lib = ReplaceLine(lib, "#define MAX_HTTP_PACKET_SIZE", "#define MAX_HTTP_PACKET_SIZE " + config.MaxHTTPPacketSize.ToString() + "\n");
                }
                else
                {
                    lib = DeleteLine(lib, "#define MAX_HTTP_PACKET_SIZE");
                }
            }
            else
            {
                if (config.MaxHTTPPacketSize > 0)
                {
                    i = GetIndexOfNextLine(lib, "#define INITIAL_BUFFER_SIZE");
                    if (i != -1)
                    {
                        lib = lib.Insert(i, "#define MAX_HTTP_PACKET_SIZE " + config.MaxHTTPPacketSize.ToString() + "\n");
                    }
                }
            }

            writer = File.CreateText(outputDir.FullName + "\\" + PreFix + "WebClient.h");
            writer.Write(lib);
            writer.Close();

            lib = GetEULA(PreFix + "WebClient.c", "") + RemoveOldEULA(ReadFileStore("ILibWebClient.c"));
            lib = lib.Replace("ILib", PreFix);

            if (Legacy)
            {
                // Remove HTTP/1.1 Specific Code
                string xx = "//{{{ REMOVE_THIS_FOR_HTTP/1.0_ONLY_SUPPORT--> }}}";
                string yy = "//{{{ <--REMOVE_THIS_FOR_HTTP/1.0_ONLY_SUPPORT }}}";
                int    ix = lib.IndexOf(xx);
                int    iy;
                while (ix != -1)
                {
                    iy  = lib.IndexOf(yy) + yy.Length;
                    lib = lib.Remove(ix, iy - ix);
                    ix  = lib.IndexOf(xx);
                }
            }

            writer = File.CreateText(outputDir.FullName + "\\" + PreFix + "WebClient.c");
            writer.Write(lib);

            writer.Close();
        }
예제 #4
0
 public CodeGenerator(ServiceGenerator.StackConfiguration StackConfiguration)
 {
     Configuration = StackConfiguration;
     ProjectName   = StackConfiguration.projectname;
     ClassName     = StackConfiguration.classname;
 }