[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