[jboss-cvs] JBoss Messaging SVN: r3721 - projects/jaio/trunk/jaio/native/src.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Feb 14 17:38:57 EST 2008


Author: clebert.suconic at jboss.com
Date: 2008-02-14 17:38:57 -0500 (Thu, 14 Feb 2008)
New Revision: 3721

Modified:
   projects/jaio/trunk/jaio/native/src/DataManager.h
   projects/jaio/trunk/jaio/native/src/FileOutput.cpp
   projects/jaio/trunk/jaio/native/src/FileOutput.h
   projects/jaio/trunk/jaio/native/src/LibAIOController.cpp
   projects/jaio/trunk/jaio/native/src/PageManager.cpp
   projects/jaio/trunk/jaio/native/src/PageManager.h
   projects/jaio/trunk/jaio/native/src/org_jboss_jaio_libaioimpl_LibAIOController.h
Log:
Tweaks

Modified: projects/jaio/trunk/jaio/native/src/DataManager.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/DataManager.h	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/DataManager.h	2008-02-14 22:38:57 UTC (rev 3721)
@@ -9,7 +9,8 @@
 	DataManager();
 	virtual ~DataManager();
 	virtual void addData(BufferAdapter * adapter) = 0;
-	virtual void flushMemory() = 0;
+	virtual void validateLowRate() = 0;
+	virtual void pollEvents() = 0;
 };
 
 #endif /*DATAMANAGER_H_*/

Modified: projects/jaio/trunk/jaio/native/src/FileOutput.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/FileOutput.cpp	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/FileOutput.cpp	2008-02-14 22:38:57 UTC (rev 3721)
@@ -9,6 +9,7 @@
 #include "FileOutput.h"
 #include "AIOException.h"
 
+//#define SYNC
 
 std::string io_error(int rc)
 {
@@ -33,8 +34,11 @@
 	}
 	std::cout << "Initialized " << aioContext << "\n";
 	
+#ifdef SYNC
+	fileHandle = open(fileName.data(),  O_WRONLY | O_CREAT, 0666);
+#else
 	fileHandle = open(fileName.data(),  O_WRONLY | O_CREAT | O_DIRECT, 0666);
-	//fileHandle = open(fileName.data(),  O_WRONLY | O_CREAT, 0666);
+#endif
 	if (fileHandle < 0)
 	{
 		throw AIOException(1, "Can't open file"); 
@@ -94,6 +98,23 @@
 void FileOutput::addData(BufferAdapter * adapter)
 {
 	int size = adapter->blockSize();
+#ifdef SYNC
+	void * buffer = malloc(size + sizeof (BufferAdapter *));
+	adapter->encode(size, buffer);
+	int error=::write(fileHandle, buffer, size);
+	
+	if (error<0)
+	{
+		throw AIOException (21, io_error(error));
+	}
+	free(buffer);
+	error = ::fsync(fileHandle);
+	if (error)
+	{
+		throw AIOException(20, io_error(error));
+	}
+	adapter->done();
+#else
 	void * buffer;
 	if (posix_memalign(&buffer, 512, size + 512))
 	{
@@ -116,5 +137,6 @@
 		str<< "Problem on submit block, errorCode=" << result;
 		throw AIOException (6, str.str());
 	}
+#endif
 }
 

Modified: projects/jaio/trunk/jaio/native/src/FileOutput.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/FileOutput.h	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/FileOutput.h	2008-02-14 22:38:57 UTC (rev 3721)
@@ -27,11 +27,15 @@
 	}
 	
 	// Nothing to be done on FileOutput 
-	void flushMemory()
+	void pollEvents()
 	{
 		io_queue_run(aioContext);
 	}
 	
+	void validateLowRate()
+	{
+	}
+	
 	static void callbackDirect(io_context_t ctx, struct iocb *iocb, long res, long res2);
 
 

Modified: projects/jaio/trunk/jaio/native/src/LibAIOController.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/LibAIOController.cpp	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/LibAIOController.cpp	2008-02-14 22:38:57 UTC (rev 3721)
@@ -105,13 +105,31 @@
 	}
 }
 
-JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_flushMemory
+
+
+JNIEXPORT void Java_org_jboss_jaio_libaioimpl_LibAIOController_pollEvents
   (JNIEnv *env, jclass, jlong controllerAddress)
 {
 	try
 	{
 		AIOController * controller = (AIOController *) controllerAddress;
-		controller->manager->flushMemory();
+		controller->manager->pollEvents();
+	}
+	catch (AIOException& e)
+	{
+		throwException(env, "java/lang/RuntimeException", e.what());
+	}
+}
+
+
+
+JNIEXPORT void Java_org_jboss_jaio_libaioimpl_LibAIOController_validateLowRate
+  (JNIEnv *env, jclass, jlong controllerAddress)
+{
+	try
+	{
+		AIOController * controller = (AIOController *) controllerAddress;
+		controller->manager->validateLowRate();
 	
 	}
 	catch (AIOException& e)

Modified: projects/jaio/trunk/jaio/native/src/PageManager.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/PageManager.cpp	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/PageManager.cpp	2008-02-14 22:38:57 UTC (rev 3721)
@@ -85,3 +85,9 @@
     observer->completePage(pagePosition, memoryArea, list);
     initMemory();
 }
+
+void PageManager::pollEvents()
+{
+    observer->completePage(pagePosition, memoryArea, list);
+    initMemory();
+}

Modified: projects/jaio/trunk/jaio/native/src/PageManager.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/PageManager.h	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/PageManager.h	2008-02-14 22:38:57 UTC (rev 3721)
@@ -27,7 +27,16 @@
 	PageManager(int pageSize, PageObserver * observer);
 	virtual ~PageManager();
 	void addData(BufferAdapter* adapter);
+
+	void pollEvents();
+	
+	void validateLowRate()
+	{
+	}
+	
 	void flushMemory();
+	
+
 };
 
 #endif /*PAGEMANAGER_H_*/

Modified: projects/jaio/trunk/jaio/native/src/org_jboss_jaio_libaioimpl_LibAIOController.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/org_jboss_jaio_libaioimpl_LibAIOController.h	2008-02-14 22:02:11 UTC (rev 3720)
+++ projects/jaio/trunk/jaio/native/src/org_jboss_jaio_libaioimpl_LibAIOController.h	2008-02-14 22:38:57 UTC (rev 3721)
@@ -33,20 +33,28 @@
 
 /*
  * Class:     org_jboss_jaio_libaioimpl_LibAIOController
- * Method:    flushMemory
+ * Method:    closeInternal
  * Signature: (J)V
  */
-JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_flushMemory
+JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_closeInternal
   (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_jboss_jaio_libaioimpl_LibAIOController
- * Method:    closeInternal
+ * Method:    pollEvents
  * Signature: (J)V
  */
-JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_closeInternal
+JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_pollEvents
   (JNIEnv *, jclass, jlong);
 
+/*
+ * Class:     org_jboss_jaio_libaioimpl_LibAIOController
+ * Method:    validateLowRate
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_validateLowRate
+  (JNIEnv *, jclass, jlong);
+
 #ifdef __cplusplus
 }
 #endif




More information about the jboss-cvs-commits mailing list