Project

General

Profile

Actions

Task #1244

closed

Face status change notification publisher

Added by Junxiao Shi almost 11 years ago. Updated over 10 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Management
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
5.00 h

Description

Implement a publisher of face status change notification stream.

Initial design is below.
Assignee is permitted to make reasonable changes to the design.

API

interface NotificationStream
{
    __construct(AppFace, Name prefix)

    template<typename Notification>
    void postNotification(Notification notification)
}

enum FaceEventKind

struct FaceEventNotification
{
    FaceEventKind
    FaceId
    Uri
    FaceFlags

    Block wireEncode()
    wireDecode(Block)
}

Operations

  1. Caller creates a NotificationStream instance, which is the publisher of a notification stream.
  2. Caller constructs a Notification class (FaceEventNotification for face status change), and pass wireEncode'd of it to NotificationStream::postNotification
  3. NotificationStream::postNotification further encloses the payload into a Data packet, and puts the Data packet through the AppFace.
  4. AppFace::put will cause InternalFace to receive this Data packet. Since InternalFace is trusted, this unsolicited Data packet will be placed into the ContentStore, waiting for client to retrieve.

Note:

  • NotificationStream does not store Notification, payload, or Data packet. It generates Data packet and puts to ContentStore, and then relies on ContentStore to keep it.

Related issues 4 (0 open4 closed)

Blocked by NFD - Task #1212: CS structureClosedIlya Moiseenko

Actions
Blocks NFD - Task #1371: (short-term hack) autoreg-server for automatic prefix registration on new tunnel connectionClosedAlex Afanasyev03/19/2014

Actions
Follows NFD - Task #1177: Face status protocolClosedJunxiao Shi

Actions
Follows NFD - Task #1235: Notification mechanismClosedJunxiao Shi

Actions
Actions

Also available in: Atom PDF