summaryrefslogtreecommitdiff
path: root/grc/base
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2014-12-05 10:24:08 +0100
committerSebastian Koslowski <koslowski@kit.edu>2014-12-05 10:24:08 +0100
commiteb40a41ec28d5f8320d9c0abcb7a2aa2602b9872 (patch)
tree2a5b96dec2b1ffa3f6f04c7c15ed96df1d24418c /grc/base
parent9372ec7daf7856de7c0e1fe782836a5c722c1473 (diff)
grc: add gr_message domain
Diffstat (limited to 'grc/base')
-rw-r--r--grc/base/Constants.py4
-rw-r--r--grc/base/Port.py9
2 files changed, 10 insertions, 3 deletions
diff --git a/grc/base/Constants.py b/grc/base/Constants.py
index 15f72ad09b..efae0ecbb5 100644
--- a/grc/base/Constants.py
+++ b/grc/base/Constants.py
@@ -34,5 +34,7 @@ DEFAULT_PARAM_TAB = "General"
ADVANCED_PARAM_TAB = "Advanced"
# Port domains
-DEFAULT_DOMAIN ="gr_stream"
DOMAIN_DTD = os.path.join(DATA_DIR, 'domain.dtd')
+GR_STREAM_DOMAIN = "gr_stream"
+GR_MESSAGE_DOMAIN = "gr_message"
+DEFAULT_DOMAIN = GR_STREAM_DOMAIN
diff --git a/grc/base/Port.py b/grc/base/Port.py
index f8a9a6d123..b393ba9600 100644
--- a/grc/base/Port.py
+++ b/grc/base/Port.py
@@ -18,7 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
"""
from Element import Element
-from . Constants import DEFAULT_DOMAIN
+from . Constants import GR_STREAM_DOMAIN, GR_MESSAGE_DOMAIN
class Port(Element):
@@ -37,7 +37,7 @@ class Port(Element):
self._name = n['name']
self._key = n['key']
self._type = n['type']
- self._domain = n.find('domain') or DEFAULT_DOMAIN
+ self._domain = n['domain']
self._hide = n.find('hide') or ''
self._dir = dir
self._type_evaluated = None # updated on rewrite()
@@ -61,6 +61,11 @@ class Port(Element):
self._type_evaluated = self.get_parent().resolve_dependencies(self._type)
hide = self.get_parent().resolve_dependencies(self._hide).strip().lower()
self._hide_evaluated = False if hide in ('false', 'off', '0') else bool(hide)
+ # update domain if was deduced from (dynamic) port type
+ if self._domain == GR_STREAM_DOMAIN and self._type_evaluated == "message":
+ self._domain = GR_MESSAGE_DOMAIN
+ if self._domain == GR_MESSAGE_DOMAIN and self._type_evaluated != "message":
+ self._domain = GR_STREAM_DOMAIN
def __str__(self):
if self.is_source():