userlibandfileserver/fileserver/inc/f32notification.h
changeset 36 538db54a451d
parent 0 a41df078684a
child 109 b3a1d9898418
--- a/userlibandfileserver/fileserver/inc/f32notification.h	Tue Jan 19 13:48:03 2010 +0000
+++ b/userlibandfileserver/fileserver/inc/f32notification.h	Mon Jan 18 21:31:10 2010 +0200
@@ -139,6 +139,11 @@
 class CFsNotifyBody; //incomplete decl
 
 /*
+ * CFsNotify is a class which allows changes to file and directories to be monitored
+ *
+ * The notification framework supported by CFsNotify is able to keep track of multiple notifications,
+ * whilst ensuring that notifications cannot be missed (unlike RFs::NotifyChange which can miss changes).
+ *
  * CFsNotify encapsulates the client-side sub-session associated with
  * the file server notification framework.
  * 
@@ -172,8 +177,22 @@
 		/*
 		 * Factory function. Creates a new CFsNotify and returns a pointer to it.
 		 *
+		 * CFsNotify stores notifications in a buffer. 
+		 * Clients of CFsNotify must specify how large this buffer should be.
+		 * 
+		 * As a guideline: Notification objects in the buffer typically have a 8byte header,
+		 * followed by a word aligned string containing the fullname of the file that has changed.
+		 * In the case of a rename notification both the original and the new fullnames are stored.
+		 *
+		 * However, clients must not assume to know the exact size of notifications when determining the size of their buffer,
+		 * as it is not possible to know how often a client will be able to read the notifications from the buffer.
+		 * In addition, if further notification types are added, then the header size or maximum data could increase.
+		 * 
+		 * Thus, clients must ensure that their notification handling code appropriately deals with an overflow notification, whereby the
+		 * buffer was not large enough to store all of the notifications.
+		 *
 		 * If aBufferSize is greater than (KMaxTInt/2) then it will return KErrArgument.
-		 * If it is less than KMinNotificationBufferSize (approximately 1KB) then aBufferSize will be 
+		 * If aBufferSize is less than KMinNotificationBufferSize (which is an internal constant but is approximately equal to 1KB) then aBufferSize will be 
 		 * set to KMinNotificationBufferSize.
 		 * 
 		 * @param aFs - RFs session. Must be connected.