Esempio n. 1
0
    def register_actor_descriptions(self, descriptions):
        for desc in descriptions["types"].values():
            type_name = desc["typeName"]
            category = desc["category"]
            if category == "actor":
                t = get_type(desc["typeName"])

                if isinstance(t, ActorType):
                    concrete = t.cls
                elif isinstance(t, PlaceholderType) and t.concrete:
                    concrete = t.concrete.cls
                else:
                    concrete = type(
                        str(type_name), (Front,), {"typeName": type_name})

                concrete.implement_actor(desc)
                continue

            if type_exists(type_name):
                continue

            if category == "dict":
                add_type(DictType(type_name, desc["specializations"]))

        self.on_connected.emit(self)
Esempio n. 2
0
    def register_actor_descriptions(self, descriptions):
        for desc in descriptions["types"].values():
            type_name = desc["typeName"]
            category = desc["category"]
            if category == "actor":
                t = get_type(desc["typeName"])

                if isinstance(t, ActorType):
                    concrete = t.cls
                elif isinstance(t, PlaceholderType) and t.concrete:
                    concrete = t.concrete.cls
                else:
                    concrete = type(str(type_name), (Front, ),
                                    {"typeName": type_name})

                concrete.implement_actor(desc)
                continue

            if type_exists(type_name):
                continue

            if category == "dict":
                add_type(DictType(type_name, desc["specializations"]))

        self.on_connected.emit(self)
Esempio n. 3
0
    def implement_actor(cls, actor_desc):
        if isinstance(actor_desc, str) or isinstance(actor_desc, unicode):
            actor_desc = json.loads(s)

        if "typeName" in actor_desc:
            add_type(ActorType(actor_desc["typeName"], cls))

        for method in actor_desc["methods"]:
            cls.implement_method(method)

        if "events" in actor_desc:
            cls.events = {}
            for event_name in actor_desc["events"]:
                cls.implement_event(event_name, actor_desc["events"][event_name])
Esempio n. 4
0
    def implement_actor(cls, actor_desc):
        if isinstance(actor_desc, str) or isinstance(actor_desc, unicode):
            actor_desc = json.loads(s)

        if "typeName" in actor_desc:
            add_type(ActorType(actor_desc["typeName"], cls))

        for method in actor_desc["methods"]:
            cls.implement_method(method)

        if "events" in actor_desc:
            cls.events = {}
            for event_name in actor_desc["events"]:
                cls.implement_event(event_name,
                                    actor_desc["events"][event_name])
Esempio n. 5
0
"""
Front specializations
"""

from protocol import Front, Request
from marshallers import get_type, add_type, DictType

add_type(DictType("tablist", {
  "selected": "number",
  "tabs": "array:tab"
}))


class RootFront(Front):
    actor_desc = {
        "typeName": "root",
        "methods": [{
            "name": "echo",
            "request": {
                "string": { "_arg": 0, "type": "string" }
            },
            "response": {
                "string": { "_retval": "string" }
            }
          },
        {
            "name": "listTabs",
            "request": {},
            "response": { "_retval": "tablist" }
        },
        {
Esempio n. 6
0
"""
Front specializations
"""

from protocol import Front, Request
from marshallers import get_type, add_type, DictType

add_type(DictType("tablist", {"selected": "number", "tabs": "array:tab"}))


class RootFront(Front):
    actor_desc = {
        "typeName":
        "root",
        "methods": [{
            "name": "echo",
            "request": {
                "string": {
                    "_arg": 0,
                    "type": "string"
                }
            },
            "response": {
                "string": {
                    "_retval": "string"
                }
            }
        }, {
            "name": "listTabs",
            "request": {},
            "response": {