1 // NodeMonitoringEvent.cpp 2 3 #include <Message.h> 4 #include <NodeMonitor.h> 5 6 #include "DebugSupport.h" 7 #include "NodeMonitoringEvent.h" 8 9 // NodeMonitoringEvent 10 11 // constructor 12 NodeMonitoringEvent::NodeMonitoringEvent() 13 : BReferenceable(), 14 time(system_time()), 15 queryHandler(NULL), 16 remotePort(-1), 17 remoteToken(-1) 18 { 19 } 20 21 // destructor 22 NodeMonitoringEvent::~NodeMonitoringEvent() 23 { 24 if (queryHandler) 25 queryHandler->ReleaseReference(); 26 } 27 28 29 // EntryCreatedEvent 30 31 // Init 32 status_t 33 EntryCreatedEvent::Init(const BMessage* message) 34 { 35 opcode = B_ENTRY_CREATED; 36 const char* localName; 37 if (message->FindInt32("device", &volumeID) != B_OK 38 || message->FindInt64("directory", &directoryID) != B_OK 39 || message->FindInt64("node", &nodeID) != B_OK 40 || message->FindString("name", &localName) != B_OK) { 41 return B_BAD_VALUE; 42 } 43 if (!name.SetTo(localName)) 44 return B_NO_MEMORY; 45 return B_OK; 46 } 47 48 49 // EntryRemovedEvent 50 51 // Init 52 status_t 53 EntryRemovedEvent::Init(const BMessage* message) 54 { 55 opcode = B_ENTRY_REMOVED; 56 if (message->FindInt32("device", &volumeID) != B_OK 57 || message->FindInt64("directory", &directoryID) != B_OK 58 || message->FindInt64("node", &nodeID) != B_OK) { 59 return B_BAD_VALUE; 60 } 61 nodeVolumeID = volumeID; 62 return B_OK; 63 } 64 65 66 // EntryMovedEvent 67 68 // Init 69 status_t 70 EntryMovedEvent::Init(const BMessage* message) 71 { 72 opcode = B_ENTRY_MOVED; 73 const char* localName; 74 if (message->FindInt32("device", &volumeID) != B_OK 75 || message->FindInt64("from directory", &fromDirectoryID) != B_OK 76 || message->FindInt64("to directory", &toDirectoryID) != B_OK 77 || message->FindInt64("node", &nodeID) != B_OK 78 || message->FindString("name", &localName) != B_OK) { 79 return B_BAD_VALUE; 80 } 81 nodeVolumeID = volumeID; 82 if (!toName.SetTo(localName)) 83 return B_NO_MEMORY; 84 return B_OK; 85 } 86 87 88 // StatChangedEvent 89 90 // Init 91 status_t 92 StatChangedEvent::Init(const BMessage* message) 93 { 94 opcode = B_STAT_CHANGED; 95 if (message->FindInt32("device", &volumeID) != B_OK 96 || message->FindInt64("node", &nodeID)) { 97 return B_BAD_VALUE; 98 } 99 return B_OK; 100 } 101 102 103 // AttributeChangedEvent 104 105 // Init 106 status_t 107 AttributeChangedEvent::Init(const BMessage* message) 108 { 109 opcode = B_ATTR_CHANGED; 110 const char* localName; 111 if (message->FindInt32("device", &volumeID) != B_OK 112 || message->FindInt64("node", &nodeID) 113 || message->FindString("attr", &localName) != B_OK) { 114 return B_BAD_VALUE; 115 } 116 if (!attribute.SetTo(localName)) 117 return B_NO_MEMORY; 118 return B_OK; 119 } 120 121 122 // VolumeMountedEvent 123 124 // Init 125 status_t 126 VolumeMountedEvent::Init(const BMessage* message) 127 { 128 opcode = B_DEVICE_MOUNTED; 129 if (message->FindInt32("new device", &newVolumeID) != B_OK 130 || message->FindInt32("device", &volumeID) != B_OK 131 || message->FindInt64("directory", &directoryID) != B_OK) { 132 return B_BAD_VALUE; 133 } 134 return B_OK; 135 } 136 137 138 // VolumeUnmountedEvent 139 140 // Init 141 status_t 142 VolumeUnmountedEvent::Init(const BMessage* message) 143 { 144 opcode = B_DEVICE_UNMOUNTED; 145 if (message->FindInt32("device", &volumeID) != B_OK) 146 return B_BAD_VALUE; 147 return B_OK; 148 } 149 150