Tasks #176

Add Metadata Support to Event Notifications

Added by S. Wrede over 13 years ago. Updated almost 13 years ago.

Status:ResolvedStart date:01/17/2011
Priority:NormalDue 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

Revision 00ffc447
Added by J. Wienke almost 13 years ago

add a dedicated meta-data object

refs #176

Revision 2ff7dd1f
Added by J. Moringen almost 13 years ago

Added MetData protocol buffer descriptor in rsbprotocol/MetaData.proto
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

Revision 7f3e6b66
Added by J. Moringen almost 13 years ago

Find protocol buffer descriptors using wildcard in build.xml
refs #176
  • build.xml: changed protocol target to use apply with wildcard
    filesets instead of individual arg elements within exec

Revision 32be4265
Added by J. Moringen almost 13 years ago

Made receiver side timestamps optional in rsbprotocol/MetaData.proto
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

Revision 21cc2729
Added by J. Moringen almost 13 years ago

Fixed MetaData unit test in test/rsb/MetaDataTest.cpp
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

Revision 1289b11d
Added by J. Moringen almost 13 years ago

Store sender ID compactly in src/rsb/transport/spread/OutConnector.cpp
refs #176
  • src/rsb/transport/spread/OutConnector.cpp: store sender UUID as an
    array of 16 bytes instead of as its string representation

Revision b4d9e008
Added by J. Moringen almost 13 years ago

Extended explanatory comment in rsbprotocol/MetaData.proto
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)

Revision 4e2d1f6a
Added by J. Wienke almost 13 years ago

Ensure that connectors provide the required meta data

refs #176

Revision f78100ad
Added by J. Wienke almost 13 years ago

update protocol and meta data representation in C++ according to ticket

fixes #337 #339
refs #176

Revision a4e400b1
Added by J. Wienke almost 13 years ago

update protocol and meta data representation in C++ according to ticket

fixes #337 #339
refs #176

Revision 450f5716
Added by J. Moringen almost 13 years ago

Added Participant base class in rsb/__init__.py
refs #176 (since we need a sender id)
  • rsb/__init__.py: added class Participant; Informer and Listener are
    now derived from Participant

Revision ebe0fed5
Added by J. Moringen almost 13 years ago

Added MetaData class in rsb/__init__.py
refs #176
  • rsb/__init__.py: added MetaData class; added MetaData class to Event
    class

Revision 1274d85f
Added by J. Moringen almost 13 years ago

Converted to new notification protocol buffer descriptors
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

Revision 780f5dc9
Added by J. Moringen almost 13 years ago

Fixed compilation of src/rsb/MetaData.java
refs #176
  • src/rsb/MetaData.java: added member variables userTimes and
    userInfos; fixed missing method bodies and return values; added
    toString method

Revision 1c1380d4
Added by J. Moringen almost 13 years ago

Improved meta-data client interface in rsb/__init__.py
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

Revision 38e7f4b4
Added by J. Wienke almost 13 years ago

Finalize MetaData class for Java

refs #176

Revision 873e3d05
Added by J. Wienke almost 13 years ago

introduce a Participant baseclass for informer and listener to have an Id for each participant

refs #176

Revision eb93c819
Added by J. Wienke almost 13 years ago

Handle MetaData for events

refs #176

Revision abfea2cb
Added by J. Wienke almost 13 years ago

fixed and tested metadata support

fixes #176

Revision 5c8f9694
Added by J. Wienke almost 13 years ago

fix sending and receiving of user times across spread

refs #176

Revision a1bb6f13
Added by J. Moringen almost 13 years ago

Use System.currentTimeMillis instead of System.nanoTime
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 about 13 years ago

  • Category set to Protocol

#2 Updated by J. Wienke about 13 years ago

I agree with the explicit representation. The variable metadata collection may still be useful.

#3 Updated by J. Wienke almost 13 years ago

  • Project changed from RSB XCF Adapter to Robotics Service Bus
  • Parent task deleted (#173)

#4 Updated by J. Wienke almost 13 years ago

  • Target version set to 0.3

#5 Updated by J. Wienke almost 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 almost 13 years ago

  • % Done changed from 0 to 70

#7 Updated by J. Wienke almost 13 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 70 to 100

Applied in changeset r1398.

Also available in: Atom PDF