Tasks #176
Add Metadata Support to Event Notifications
Status: | Resolved | Start date: | 01/17/2011 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Wienke | % Done: | 100% | |
Category: | - | |||
Target version: | 0.3 |
Description
Atcually, we need to agree what information is mandatory metdata. Examples include:
- Sender and receiver URIs (once we defined the URI scheme)
- Timing
- TTL
I'd like to represent this information explicitly in the IDL and a metadata domain object.
Associated revisions
add a dedicated meta-data object
refs #176
Added MetData protocol buffer descriptor in rsbprotocol/MetaData.proto
refs #176
This change should be backwards-compatible.
refs #176
This change should be backwards-compatible.
- CMakeLists.txt: added file rsbprotocol/MetaData.proto
- rsbprotocol/MetaData.proto: new file MetaData protocol buffer
descriptor; this implements the notification side of
https://code.cor-lab.de/projects/rsb/wiki/Events#Meta-Data - rsbprotocol/Notification.proto: import MetaData.proto; added
meta_data field of type MetaData
Find protocol buffer descriptors using wildcard in build.xml
refs #176
refs #176
- build.xml: changed protocol target to use apply with wildcard
filesets instead of individual arg elements within exec
Made receiver side timestamps optional in rsbprotocol/MetaData.proto
refs #176
refs #176
- rsbprotocol/MetaData.proto: made receive_time and deliver_time
optional; there will be no need to transmit these over the network
in most scenarios
Fixed MetaData unit test in test/rsb/MetaDataTest.cpp
refs #176
refs #176
- test/rsb/MetaDataTest.cpp: in test case testComparison do not expect
two fresh MetaData objects to be identical since each of them
generates a random sender id
Store sender ID compactly in src/rsb/transport/spread/OutConnector.cpp
refs #176
refs #176
- src/rsb/transport/spread/OutConnector.cpp: store sender UUID as an
array of 16 bytes instead of as its string representation
Extended explanatory comment in rsbprotocol/MetaData.proto
refs #176
refs #176
- rsbprotocol/MetaData.proto: mention that the sender's UUID should be
stored in the sender_id field as an array of 16 bytes (as opposed to
the string representation of the UUID)
Ensure that connectors provide the required meta data
refs #176
Added Participant base class in rsb/__init__.py
refs #176 (since we need a sender id)
refs #176 (since we need a sender id)
- rsb/__init__.py: added class Participant; Informer and Listener are
now derived from Participant
Added MetaData class in rsb/__init__.py
refs #176
refs #176
- rsb/__init__.py: added MetaData class; added MetaData class to Event
class
Converted to new notification protocol buffer descriptors
refs #176
refs #176
- rsb/__init__.py: store participant id as sender id in
Informer.publishEvent - rsb/util.py: added utility functions timeToUnixMicroseconds and
unixMicrosecondsToTime - rsb/rsbspread/__init__.py: use Protocol protocol buffer instead of
Notification protocol buffer; adapted things accordingly - test/rsbspreadtest.py: added sender ids to created event objects
Fixed compilation of src/rsb/MetaData.java
refs #176
refs #176
- src/rsb/MetaData.java: added member variables userTimes and
userInfos; fixed missing method bodies and return values; added
toString method
Improved meta-data client interface in rsb/__init__.py
refs #176
refs #176
- rsb/__init__.py: accept user-times and user-infos as keyword
parameters in Event constructor; accept user-times and user-infos as
keyword parameters in Informer.publishData method
Finalize MetaData class for Java
refs #176
introduce a Participant baseclass for informer and listener to have an Id for each participant
refs #176
Handle MetaData for events
refs #176
fixed and tested metadata support
fixes #176
fix sending and receiving of user times across spread
refs #176
Use System.currentTimeMillis instead of System.nanoTime
fixes #176
fixes #176
- src/rsb/MetaData.java: Use System.currentTimeMillis instead of
System.nanoTime which does not yield absolute time measurements - test/rsb/MetaDataTest.java: likewise
- test/rsb/eventprocessing/EventProcessorTest.java: likewise
- test/rsb/transport/spread/SpreadPortTest.java: likewise
History
#1 Updated by S. Wrede over 13 years ago
- Category set to Protocol
#2 Updated by J. Wienke over 13 years ago
I agree with the explicit representation. The variable metadata collection may still be useful.
#3 Updated by J. Wienke about 13 years ago
- Project changed from RSB XCF Adapter to Robotics Service Bus
- Parent task deleted (
#173)
#4 Updated by J. Wienke about 13 years ago
- Target version set to 0.3
#5 Updated by J. Wienke about 13 years ago
- Status changed from New to In Progress
- Assignee set to J. Wienke
I will integrate it for Python, Java and C++
#6 Updated by J. Moringen about 13 years ago
- % Done changed from 0 to 70
#7 Updated by J. Wienke about 13 years ago
- Status changed from In Progress to Resolved
- % Done changed from 70 to 100
Applied in changeset r1398.