Revision history [back]

click to hide/show revision 1
initial version

Announce/ObjectFound is not received after ObjectLost/SessionLost

I had 2 different classes. One class is derived from ajn::Observer::Listener, other - from ajn::AboutListener and ajn::SessionListener. I am trying to handle the lifetime of BusObjects using these classes. If I use second (with AboutListener and SessionListener), I establish session when I receive Announced callback (device is online for me) and I delete device (set it offline) when I receive SessionLost(). For first class (Observer::Listener) I am using ObjectDiscovered and ObjectLost respectively. The problem appears when I have following scenario: 1. Device come up online - ObjectDiscovered() and Announced() are called. 2. I simulate network problems - for example, turn off network cable from one of the devices. 3. After some time ObjectLost() and SessionLost() are called (because of timeout). For now device is offline 4. I put back cable back. But I don't receive neither ObjectDiscovered(), neither Announced(). But alljoyn can see the second device (I can see from alljoyn debug logs that alljoyn receives some information from remote device).

Is there any way to handle such situations, or may be there is a better way to track device online/offline status instead of decribed ones?

Announce/ObjectFound is not received after ObjectLost/SessionLost

I had 2 different classes. One class is derived from ajn::Observer::Listener, other - from ajn::AboutListener and ajn::SessionListener. I am trying to handle the lifetime of BusObjects using these classes. If I use second (with AboutListener and SessionListener), I establish session when I receive Announced callback (device is online for me) and I delete device (set it offline) when I receive SessionLost(). For first class (Observer::Listener) I am using ObjectDiscovered and ObjectLost respectively. The problem appears when I have following scenario: 1. Device come up online - ObjectDiscovered() and Announced() are called. 2. I simulate network problems - for example, turn off network cable from one of the devices. 3. After some time ObjectLost() and SessionLost() are called (because of timeout). For now device is offline 4. I put back cable back. But I don't receive neither ObjectDiscovered(), neither Announced(). But alljoyn can see the second device (I can see from alljoyn debug logs that alljoyn receives some information from remote device).

Is there any way to handle such situations, or may be there is a better way to track device online/offline status instead of decribed described ones?

click to hide/show revision 3
No.3 Revision

Announce/ObjectFound is not received after ObjectLost/SessionLost

I had 2 different classes. One class is derived from ajn::Observer::Listener, ajn::Observer::Listener, other - from ajn::AboutListener and ajn::SessionListener. ajn::AboutListener and ajn::SessionListener. I am trying to handle the lifetime of BusObjects using these classes. If I use second (with AboutListener and SessionListener), I establish session when I receive Announced callback (device is online for me) me) and I delete device (set it offline) offline) when I receive SessionLost(). For first class (Observer::Listener) I am using ObjectDiscovered and ObjectLost respectively. respectively.

The problem appears when I have following scenario: 1. scenario:

  1. Device come up online - ObjectDiscovered() and Announced() are called. 2. called.
  2. I simulate network problems - for example, turn off network cable from one of the devices. 3. devices.
  3. After some time ObjectLost() and SessionLost() are called (because of timeout). timeout). For now device is offline 4. offline
  4. I put back cable back. But I don't receive neither ObjectDiscovered(), neither Announced(). But alljoyn can see the second device (I can see from alljoyn debug logs that alljoyn receives some information from remote device).

    device)
    .

Is there any way to handle such situations, or may be there is a better way to track device online/offline status instead of described ones?

click to hide/show revision 4
No.4 Revision

Announce/ObjectFound is not received after ObjectLost/SessionLost

I had 2 different classes. One class is derived from ajn::Observer::Listener, other - from ajn::AboutListener and ajn::SessionListener. I am trying to handle the lifetime of BusObjects using these classes. If I use second (with AboutListener and SessionListener), SessionListener), I establish session when I receive Announced callback (device is online for me) and I delete device (set it offline) when I receive SessionLost(). For first class (Observer::Listener) (Observer::Listener) I am using ObjectDiscovered and ObjectLost respectively.

The problem appears when I have following scenario:

  1. Device come up online - ObjectDiscovered() and Announced() are called.
  2. I simulate network problems - for example, turn off network cable from one of the devices.
  3. After some time ObjectLost() and SessionLost() are called (because of timeout). For now device is offline
  4. I put back cable back. But I don't receive neither ObjectDiscovered(), neither Announced(). But alljoyn can see the second device (I can see from alljoyn debug logs that alljoyn receives some information from remote device).

Is there any way to handle such situations, or may be there is a better way to track device online/offline status instead of described ones?