Ejemplo n.º 1
0
    def generate(self):
        package = self.cppPackage.package
        guard = re.sub(
            "_+", "_",
            re.sub("[^a-zA-Z0-9]+", "_",
                   os.path.basename(self.filePath))).strip("_").upper()

        includes = [
            cpp_path_norm(package.cpp.filenames["opMessageDeclaration"]),
            "modules/protobuf/src/protobuf_input.h",
            "modules/protobuf/src/protobuf_output.h",
            "modules/protobuf/src/protobuf_message.h",
            "modules/protobuf/src/protobuf_data.h",
            "modules/protobuf/src/generated/g_protobuf_descriptors.h",
        ]

        text = fileHeader()
        text += "\n" + render(
            """
            // Generated from %(proto_file)s

            #include "core/pch.h"
            
            #ifndef %(guard)s
            #define %(guard)s

            %(defines)s

            %(includes)s

            """, {
                "proto_file": self.cppPackage.makeRelativePath(
                    package.filename),
                "guard": guard,
                "defines": self.renderDefines(self.cppPackage.defines),
                "includes": self.renderIncludes(includes),
            }) + "\n"

        set_gen = CppOpMessageSetGenerator(package,
                                           self.cppPackage.messages,
                                           options=self.cppPackage)
        text += set_gen.getImplementation()

        text += render(
            """

            %(endifs)s

            #endif // %(guard)s
            """, {
                "endifs": self.renderEndifs(self.cppPackage.defines),
                "guard": guard,
            }) + "\n"

        return text
Ejemplo n.º 2
0
    def generate(self):
        package = self.cppPackage.package
        guard = re.sub(
            "_+", "_",
            re.sub("[^a-zA-Z0-9]+", "_",
                   os.path.basename(self.filePath))).strip("_").upper()

        includes = [
            cpp_path_norm(package.cpp.filenames["messageDeclaration"]),
            "modules/hardcore/component/OpTypedMessage.h",
        ]

        text = fileHeader()
        text += "\n" + render(
            """
            // Generated from %(proto_file)s
            
            #ifndef %(guard)s
            #define %(guard)s

            %(defines)s

            %(includes)s
            
            """, {
                "proto_file": self.cppPackage.makeRelativePath(
                    package.filename),
                "guard": guard,
                "defines": self.renderDefines(self.cppPackage.defines),
                "includes": self.renderIncludes(includes),
            }) + "\n"

        set_gen = CppOpMessageSetGenerator(package,
                                           self.cppPackage.messages,
                                           options=self.cppPackage)
        text += set_gen.getInterface()

        text += render(
            """

            %(endifs)s

            #endif // %(guard)s
            """, {
                "endifs": self.renderEndifs(self.cppPackage.defines),
                "guard": guard,
            }) + "\n"

        return text
Ejemplo n.º 3
0
    def generate(self):
        text = fileHeader()
        text += (
            "\n"
            + render(
                """
            #include "core/pch.h"

            %(defines)s

            #include "%(interfaceInclude)s"

            """,
                {
                    "defines": self.renderDefines(self.defines),
                    "interfaceInclude": cpp_path_norm(self.includes["interfaceDeclaration"]),
                    "serviceStr": strQuote(self.service.name),
                },
            )
            + "\n"
        )

        className = self.service.iparent.cpp.cppMessageSet().name
        set_gen = CppMessageSetGenerator(
            self.service.iparent, serviceMessages2(self.service), className, self.operaRoot
        )
        text += set_gen.renderDescriptorImplementation()
        text += set_gen.getImplementation()

        gen = CppServiceGenerator(self.service)
        text += gen.getInterfaceImplementation()

        text += "\n// Service implementation: BEGIN\n"
        text += gen.getServiceImplementation(generate_instance=self.cppService.generateInstance)
        text += "\n// Service implementation: END\n\n"

        text += (
            render(
                """

            %(endifs)s
            """,
                {"endifs": self.renderEndifs(self.defines)},
            )
            + "\n"
        )

        return text
Ejemplo n.º 4
0
    def generate(self):
        package = self.cppPackage.package
        guard = re.sub("_+", "_", re.sub("[^a-zA-Z0-9]+", "_", os.path.basename(self.filePath))).strip("_").upper()

        includes = [cpp_path_norm(package.cpp.filenames["opMessageDeclaration"]),
                    "modules/protobuf/src/protobuf_input.h",
                    "modules/protobuf/src/protobuf_output.h",
                    "modules/protobuf/src/protobuf_message.h",
                    "modules/protobuf/src/protobuf_data.h",
                    "modules/protobuf/src/generated/g_protobuf_descriptors.h",
                    ]

        text = fileHeader()
        text += "\n" + render("""
            // Generated from %(proto_file)s

            #include "core/pch.h"
            
            #ifndef %(guard)s
            #define %(guard)s

            %(defines)s

            %(includes)s

            """, {
                "proto_file": self.cppPackage.makeRelativePath(package.filename),
                "guard": guard,
                "defines": self.renderDefines(self.cppPackage.defines),
                "includes": self.renderIncludes(includes),
            }) + "\n"

        set_gen = CppOpMessageSetGenerator(package, self.cppPackage.messages, options=self.cppPackage)
        text += set_gen.getImplementation()

        text += render("""

            %(endifs)s

            #endif // %(guard)s
            """, {
                "endifs": self.renderEndifs(self.cppPackage.defines),
                "guard": guard,
            }) + "\n"

        return text
Ejemplo n.º 5
0
    def generate(self):
        text = fileHeader()
        text += "\n" + render(
            """
            #include "core/pch.h"

            %(defines)s

            #include "%(interfaceInclude)s"

            """, {
                "defines":
                self.renderDefines(self.defines),
                "interfaceInclude":
                cpp_path_norm(self.includes["interfaceDeclaration"]),
                "serviceStr":
                strQuote(self.service.name),
            }) + "\n"

        className = self.service.iparent.cpp.cppMessageSet().name
        set_gen = CppMessageSetGenerator(self.service.iparent,
                                         serviceMessages2(self.service),
                                         className, self.operaRoot)
        text += set_gen.renderDescriptorImplementation()
        text += set_gen.getImplementation()

        gen = CppServiceGenerator(self.service)
        text += gen.getInterfaceImplementation()

        text += "\n// Service implementation: BEGIN\n"
        text += gen.getServiceImplementation(
            generate_instance=self.cppService.generateInstance)
        text += "\n// Service implementation: END\n\n"

        text += render("""

            %(endifs)s
            """, {
            "endifs": self.renderEndifs(self.defines),
        }) + "\n"

        return text
Ejemplo n.º 6
0
    def generate(self):
        text = ""

        text += fileHeader()
        text += "\n" + render("""
#include "core/pch.h"

#ifdef SCOPE_SUPPORT

#include "modules/scope/src/generated/g_scope_manager.h"

""") + "\n"

        gen = CppManagerGenerator(self.services)
        text += gen.getImplementation()

        text += render("""
#endif // SCOPE_SUPPORT
""") + "\n"

        return text
Ejemplo n.º 7
0
    def generate(self):
        text = ""

        text += fileHeader()
        text += "\n" + render("""
#include "core/pch.h"

#ifdef SCOPE_SUPPORT

#include "modules/scope/src/generated/g_scope_manager.h"

""") + "\n"

        gen = CppManagerGenerator(self.services)
        text += gen.getImplementation()

        text += render("""
#endif // SCOPE_SUPPORT
""") + "\n"

        return text
Ejemplo n.º 8
0
    def generate(self):
        includes = [
            "modules/hardcore/src/generated/OpTypedMessageBase.h",
        ]
        includes_set = set(includes)
        for message in self.messages:
            package = getPackage(message)
            for include in package.cpp.opMessageIncludes():
                if include not in includes_set:
                    includes_set.add(include)
                    includes.append(include)

        text = fileHeader()
        text += "\n" + render(
            """
            // Generated from proto files in the system

            #include "core/pch.h"
            
            %(defines)s

            %(includes)s

            """, {
                "defines": self.renderDefines(self.defines),
                "includes": self.renderIncludes(includes),
            }) + "\n"

        text += self.renderVerify(self.messages) + "\n"

        text += self.renderDeserialize(self.messages) + "\n"

        text += render("""

            %(endifs)s
            """, {
            "endifs": self.renderEndifs(self.defines),
        }) + "\n"

        return text
Ejemplo n.º 9
0
    def generate(self):
        package = self.cppPackage.package
        guard = re.sub("_+", "_", re.sub("[^a-zA-Z0-9]+", "_", os.path.basename(self.filePath))).strip("_").upper()

        includes = [cpp_path_norm(package.cpp.filenames["messageDeclaration"]),
                    "modules/hardcore/component/OpTypedMessage.h",
                    ]

        text = fileHeader()
        text += "\n" + render("""
            // Generated from %(proto_file)s
            
            #ifndef %(guard)s
            #define %(guard)s

            %(defines)s

            %(includes)s
            
            """, {
                "proto_file": self.cppPackage.makeRelativePath(package.filename),
                "guard": guard,
                "defines": self.renderDefines(self.cppPackage.defines),
                "includes": self.renderIncludes(includes),
            }) + "\n"

        set_gen = CppOpMessageSetGenerator(package, self.cppPackage.messages, options=self.cppPackage)
        text += set_gen.getInterface()

        text += render("""

            %(endifs)s

            #endif // %(guard)s
            """, {
                "endifs": self.renderEndifs(self.cppPackage.defines),
                "guard": guard,
            }) + "\n"

        return text
Ejemplo n.º 10
0
    def generate(self):
        includes = ["modules/hardcore/src/generated/OpTypedMessageBase.h",
                    ]
        includes_set = set(includes)
        for message in self.messages:
            package = getPackage(message)
            for include in package.cpp.opMessageIncludes():
                if include not in includes_set:
                    includes_set.add(include)
                    includes.append(include)

        text = fileHeader()
        text += "\n" + render("""
            // Generated from proto files in the system

            #include "core/pch.h"
            
            %(defines)s

            %(includes)s

            """, {
                "defines": self.renderDefines(self.defines),
                "includes": self.renderIncludes(includes),
            }) + "\n"

        text += self.renderVerify(self.messages) + "\n"

        text += self.renderDeserialize(self.messages) + "\n"

        text += render("""

            %(endifs)s
            """, {
                "endifs": self.renderEndifs(self.defines),
            }) + "\n"

        return text
Ejemplo n.º 11
0
    def generate(self):
        text = ""

        text += fileHeader()
        text += "\n" + render("""
#ifndef OP_SCOPE_MANAGER_G_H
#define OP_SCOPE_MANAGER_G_H

#ifdef SCOPE_SUPPORT

""") + "\n"

        gen = CppManagerGenerator(self.services)
        text += gen.getDeclaration()

        text += render("""

#endif // SCOPE_SUPPORT

#endif // OP_SCOPE_MANAGER_G_H
""") + "\n"

        return text
Ejemplo n.º 12
0
    def generate(self):
        text = ""

        text += fileHeader()
        text += "\n" + render("""
#ifndef OP_SCOPE_MANAGER_G_H
#define OP_SCOPE_MANAGER_G_H

#ifdef SCOPE_SUPPORT

""") + "\n"

        gen = CppManagerGenerator(self.services)
        text += gen.getDeclaration()

        text += render("""

#endif // SCOPE_SUPPORT

#endif // OP_SCOPE_MANAGER_G_H
""") + "\n"

        return text
Ejemplo n.º 13
0
    def generate(self):
        enums = self.enums
        guard = re.sub(
            "_+", "_",
            re.sub("[^a-zA-Z0-9]+", "_",
                   os.path.basename(self.filePath))).strip("_").upper()

        text = fileHeader()
        text += "\n" + render(
            """
            // Generated from proto files in the system

            #ifndef %(guard)s
            #define %(guard)s

            %(defines)s

            class OpTypedMessage;
            struct OpMessageAddress;
            class OpData;

            class OpTypedMessageBase
            {
            public:
            """, {
                "defines": self.renderDefines(self.defines),
                "guard": guard,
            }) + "\n"

        text += self.indent(self.renderVerify(enums)) + "\n"

        text += self.indent(
            render("""
            /**
             * Deserializes the message data in @p data based on the @p type.
             * It will call the Class::Deserialize() method on the class that
             * belongs to the type.
             *
             * @param type The type of message data to decode. This determines
             *        the class of the returned instance.
             * @param src Source address of the message. This will be placed in
             *        the returned object.
             * @param dst Destination address of the message. This will be
             *        placed in the returned object.
             * @param delay Number of milliseconds until this message should
             *        be processed. This will be recorded in the returned object.
             * @param data The data-stream from which to de-serialize the
             *        message object.
             * @return The deserialized message object or @c NULL on failure.
             */
            static OpTypedMessage*
            DeserializeData(
                int type,
                const OpMessageAddress& src,
                const OpMessageAddress& dst,
                double delay,
                const OpData& data);
            """))
        text += render(
            """
            };

            %(endifs)s

            #endif // %(guard)s
            """, {
                "endifs": self.renderEndifs(self.defines),
                "guard": guard,
            }) + "\n"

        return text
Ejemplo n.º 14
0
    def generate(self):
        enums = self.enums
        guard = re.sub("_+", "_", re.sub("[^a-zA-Z0-9]+", "_", os.path.basename(self.filePath))).strip("_").upper()

        text = fileHeader()
        text += "\n" + render("""
            // Generated from proto files in the system

            #ifndef %(guard)s
            #define %(guard)s

            %(defines)s

            class OpTypedMessage;
            struct OpMessageAddress;
            class OpData;

            class OpTypedMessageBase
            {
            public:
            """, {
                "defines": self.renderDefines(self.defines),
                "guard": guard,
            }) + "\n"

        text += self.indent(self.renderVerify(enums)) + "\n"

        text += self.indent(render("""
            /**
             * Deserializes the message data in @p data based on the @p type.
             * It will call the Class::Deserialize() method on the class that
             * belongs to the type.
             *
             * @param type The type of message data to decode. This determines
             *        the class of the returned instance.
             * @param src Source address of the message. This will be placed in
             *        the returned object.
             * @param dst Destination address of the message. This will be
             *        placed in the returned object.
             * @param delay Number of milliseconds until this message should
             *        be processed. This will be recorded in the returned object.
             * @param data The data-stream from which to de-serialize the
             *        message object.
             * @return The deserialized message object or @c NULL on failure.
             */
            static OpTypedMessage*
            DeserializeData(
                int type,
                const OpMessageAddress& src,
                const OpMessageAddress& dst,
                double delay,
                const OpData& data);
            """))
        text += render("""
            };

            %(endifs)s

            #endif // %(guard)s
            """, {
                "endifs": self.renderEndifs(self.defines),
                "guard": guard,
            }) + "\n"

        return text