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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 18 15:05:24 EST 2008


Author: clebert.suconic at jboss.com
Date: 2008-02-18 15:05:24 -0500 (Mon, 18 Feb 2008)
New Revision: 3733

Added:
   projects/jaio/trunk/jaio/native/src/JAIODatatypes.h
Modified:
   projects/jaio/trunk/jaio/native/src/AIOController.h
   projects/jaio/trunk/jaio/native/src/BufferAdapter.h
   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/JNIBufferAdapter.cpp
   projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.h
   projects/jaio/trunk/jaio/native/src/LibAIOController.cpp
   projects/jaio/trunk/jaio/native/src/Makefile.am
   projects/jaio/trunk/jaio/native/src/PageManager.cpp
   projects/jaio/trunk/jaio/native/src/PageManager.h
   projects/jaio/trunk/jaio/native/src/PageObserver.h
Log:
Fixing multi-thread and polling events

Modified: projects/jaio/trunk/jaio/native/src/AIOController.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/AIOController.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/AIOController.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -1,8 +1,8 @@
 #ifndef AIOCONTROLLER_H_
 #define AIOCONTROLLER_H_
 #include <jni.h>
-
 #include <string>
+#include "JAIODatatypes.h"
 #include "FileOutput.h"
 #include "DataManager.h"
 
@@ -16,7 +16,6 @@
 	jmethodID error;
 	
 	int fileHandle;
-	JNIEnv * env;
 	FileOutput fileOutput;
 	
 	// It could be Paging or Direct File output

Modified: projects/jaio/trunk/jaio/native/src/BufferAdapter.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/BufferAdapter.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/BufferAdapter.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -2,11 +2,16 @@
 #define BUFFERADAPTER_H_
 
 #include <iostream>
+
+#include "JAIODatatypes.h"
+
 class BufferAdapter
 {
 private:
     // The number of pages that are expected to be used by this Buffer
     int blocks;
+
+    virtual void destroy(THREAD_CONTEXT threadContext) = 0;
 public:
 	BufferAdapter() : blocks(1)
 	{
@@ -20,7 +25,6 @@
 	void setBlocks(int _blocks)
 	{
 		blocks = _blocks;
-		std::cout << "blocks = " << blocks << "\n";
 	}
 	
 	void addBlock()
@@ -29,20 +33,20 @@
 		blocks++;
 	}
 	
-	void completeBlock()
+	void completeBlock(THREAD_CONTEXT threadContext)
 	{
 		// TODO: Do I need to mutex here?
 		if (--blocks <= 0)
 		{
-			done();
+			done(threadContext);
 		}
 	}
 	
-	virtual void addref() = 0;
-	virtual void deleteRef() = 0;
-	virtual void encode(const int& size, void *) = 0;
-	virtual void done() = 0;
-	virtual int blockSize() = 0;
-	virtual void onError(long error, std::string error)=0;
+	virtual void addref(THREAD_CONTEXT threadContext) = 0;
+	virtual void deleteRef(THREAD_CONTEXT threadContext) = 0;
+	virtual void encode(THREAD_CONTEXT threadContext, const int& size, void *) = 0;
+	virtual void done(THREAD_CONTEXT threadContext) = 0;
+	virtual int blockSize(THREAD_CONTEXT threadContext) = 0;
+	virtual void onError(THREAD_CONTEXT threadContext, long error, std::string error)=0;
 };
 #endif /*BUFFERADAPTER_H_*/

Modified: projects/jaio/trunk/jaio/native/src/DataManager.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/DataManager.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/DataManager.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -2,15 +2,16 @@
 #define DATAMANAGER_H_
 
 #include "BufferAdapter.h"
+#include "JAIODatatypes.h"
 
 class DataManager
 {
 public:
 	DataManager();
 	virtual ~DataManager();
-	virtual void addData(BufferAdapter * adapter) = 0;
-	virtual void validateLowRate() = 0;
-	virtual void pollEvents() = 0;
+	virtual void addData(THREAD_CONTEXT threadContext, BufferAdapter * adapter) = 0;
+	virtual void validateLowRate(THREAD_CONTEXT threadContext) = 0;
+	virtual void pollEvents(THREAD_CONTEXT threadContext) = 0;
 };
 
 #endif /*DATAMANAGER_H_*/

Modified: projects/jaio/trunk/jaio/native/src/FileOutput.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/FileOutput.cpp	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/FileOutput.cpp	2008-02-18 20:05:24 UTC (rev 3733)
@@ -28,17 +28,15 @@
 }
 
 
-FileOutput::FileOutput(std::string & _fileName) : aioContext(0), filePointer(0), events(0)
+FileOutput::FileOutput(std::string & _fileName) : aioContext(0), filePointer(0), events(0), added(0), received(0)
 {
 	::pthread_mutex_init(&fileMutex,0);
 	fileName = _fileName;
-	std::cout << "Initializing FileOutput " << aioContext << "\n";
 	if (io_queue_init(MAX_IO, &aioContext))
 	{
 		throw AIOException(1, "Can't initialize aio"); 
 	}
-	std::cout << "Initialized " << aioContext << "\n";
-	
+
 #ifdef SYNC
 	fileHandle = open(fileName.data(),  O_WRONLY | O_CREAT, 0666);
 #else
@@ -66,20 +64,20 @@
 	}
 }
 
-void FileOutput::completePage(long size, void * page, std::list<BufferAdapter *> * adapters)
+void FileOutput::completePage(THREAD_CONTEXT threadContext, long size, void * page, std::list<BufferAdapter *> * adapters)
 {
 	::write(fileHandle, page, size);
 	for (std::list<BufferAdapter *>::iterator iter = adapters->begin(); iter != adapters->end(); iter++)
 	{
-		(*iter)->completeBlock();
-		(*iter)->deleteRef();
+		(*iter)->completeBlock(threadContext);
+		(*iter)->deleteRef(threadContext);
 	}
 	
 	free (page);
 	delete adapters;
 }
 
-void FileOutput::callbackDirect(io_context_t ctx, struct iocb *iocb, long res, long res2)
+/*void FileOutput::callbackDirect(io_context_t ctx, struct iocb *iocb, long res, long res2)
 {
 	if (res<0 || res2<0)
 	{
@@ -92,27 +90,28 @@
 	
 	memcpy (&buffer, ((char *) iocb->u.c.buf)+iocb->u.c.nbytes, sizeof (BufferAdapter *));
 	
-	buffer->completeBlock();
+//	buffer->completeBlock();
 	
 	free (iocb->u.c.buf);
 	free (iocb);
-	buffer->deleteRef();
+//	buffer->deleteRef();
 	
 	
-}
+}*/
 
-void FileOutput::pollEvents()
+void FileOutput::pollEvents(THREAD_CONTEXT threadContext)
 {
 #ifndef SYNC
 	LockClass lock(&fileMutex);
 	int result = io_getevents(this->aioContext,0, MAX_IO, events, 0);
-
-	if (result) 
+	
+	if (result)
 	{
-		std::cout << "poll being caleld result is " << result << "\n";
+		received += result;
+		std::cout << "\nAdded=" << added << " received=" << received << "\n";
 		std::cout.flush();
 	}
-	
+
 	if (result < 0)
 	{
 		// no results
@@ -132,22 +131,21 @@
 
 		std::list<BufferAdapter *> * list = (std::list<BufferAdapter *> *)(iocbp->data); 
 		
-		std::cout << "Recovered data = " << ((long)iocbp->data) << "\n";
-		std::cout.flush();
 		long result = events[i].res;
 		if (result < 0)
 		{
 			std::string strerror = io_error(result);
 			for (std::list<BufferAdapter *>::iterator iter = list->begin(); iter != list->end(); iter ++)
 			{
-				(*iter)->onError(result, strerror);
+				(*iter)->onError(threadContext, result, strerror);
 			}
 		}
 		else
 		{
 			for (std::list<BufferAdapter *>::iterator iter = list->begin(); iter != list->end(); iter ++)
 			{
-				(*iter)->completeBlock();
+				(*iter)->completeBlock(threadContext);
+				(*iter)->deleteRef(threadContext);
 			}
 		}
 		
@@ -159,14 +157,17 @@
 }
 
 // Used only when Paging is disabled (as the user have this option to opt out for Paging)
-void FileOutput::addData(BufferAdapter * adapter)
+void FileOutput::addData(THREAD_CONTEXT threadContext, BufferAdapter * adapter)
 {
+	int size = adapter->blockSize(threadContext);
+
 	LockClass lock(&fileMutex);
+	
+	added++;
 
-	int size = adapter->blockSize();
 #ifdef SYNC
-	void * buffer = malloc(size + sizeof (BufferAdapter *));
-	adapter->encode(size, buffer);
+	void * buffer = malloc(size);
+	adapter->encode(threadContext, size, buffer);
 	int error=::write(fileHandle, buffer, size);
 	
 	if (error<0)
@@ -181,7 +182,8 @@
 	}
 	adapter->done();
 #else
-	void * buffer;
+	void * buffer = 0;
+	//void * buffer = malloc(size + sizeof (BufferAdapter *));
 	if (posix_memalign(&buffer, 512, size))
 	{
 		throw AIOException(10, "Error on posix_memalign");
@@ -190,14 +192,11 @@
 	std::list<BufferAdapter *> * list = new std::list<BufferAdapter *>();
 	list->push_back(adapter);
 	
-	//void * buffer = malloc(size + sizeof (BufferAdapter *));
-	adapter->encode(size, buffer);
-	memcpy (((char *)buffer) + size, &adapter, sizeof (adapter));
+	adapter->encode(threadContext, size, buffer);
 	
 	struct iocb * iocb = new struct iocb();
 	::io_prep_pwrite(iocb, fileHandle, buffer, size, filePointer);
 	iocb->data = (void *) list;
-	std::cout << "Set data = " << ((long)iocb->data) << "\n";
 
 	filePointer+=size;
 	

Modified: projects/jaio/trunk/jaio/native/src/FileOutput.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/FileOutput.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/FileOutput.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -1,14 +1,16 @@
 #ifndef FILEOUTPUT_H_
 #define FILEOUTPUT_H_
 
-#include "PageObserver.h"
-#include "DataManager.h"
 #include <string>
 #include <libaio.h>
 #include <pthread.h>
 
-#define MAX_IO 300
+#include "PageObserver.h"
+#include "DataManager.h"
+#include "JAIODatatypes.h"
 
+#define MAX_IO 3000
+
 class FileOutput : public PageObserver, DataManager
 {
 private:
@@ -20,12 +22,15 @@
 	
 	pthread_mutex_t fileMutex;
 	
+	int added;
+	int received;
 	
+	
 public:
 	FileOutput(std::string & _fileName);
 	virtual ~FileOutput();
-	void completePage(long size, void *, std::list<BufferAdapter *> *);
-	void addData(BufferAdapter * adapter);
+	void completePage(THREAD_CONTEXT threadContext, long size, void *, std::list<BufferAdapter *> *);
+	void addData(THREAD_CONTEXT threadContext, BufferAdapter * adapter);
 	
 	int getHandle()
 	{
@@ -33,15 +38,12 @@
 	}
 	
 	// Nothing to be done on FileOutput 
-	void pollEvents();
+	void pollEvents(THREAD_CONTEXT threadContext);
 	
-	void validateLowRate()
+	void validateLowRate(THREAD_CONTEXT threadContext)
 	{
 	}
 	
-	static void callbackDirect(io_context_t ctx, struct iocb *iocb, long res, long res2);
-
-
 };
 
 #endif /*FILEOUTPUT_H_*/

Added: projects/jaio/trunk/jaio/native/src/JAIODatatypes.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/JAIODatatypes.h	                        (rev 0)
+++ projects/jaio/trunk/jaio/native/src/JAIODatatypes.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -0,0 +1,10 @@
+#ifndef JAIODATATYPES_H_
+#define JAIODATATYPES_H_
+
+#include <jni.h>
+
+#define THREAD_CONTEXT JNIEnv *&
+#define JNI_ENV(pointer) pointer 
+
+
+#endif /*JAIODATATYPES_H_*/

Modified: projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.cpp	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.cpp	2008-02-18 20:05:24 UTC (rev 3733)
@@ -1,41 +1,44 @@
 #include <jni.h>
 #include "JNIBufferAdapter.h"
 #include <iostream>
+#include "JavaUtilities.h"
 
 JNIBufferAdapter::JNIBufferAdapter(AIOController * _controller, jobject _obj) : BufferAdapter(), refs(1)
 {
 	controller = _controller;
-	obj = controller->env->NewGlobalRef(_obj); // restore me
+	obj = _obj;
 	//obj = _obj; // delete me
 }
 
 JNIBufferAdapter::~JNIBufferAdapter()
 {
-	std::cout << " Deleting globalRef\n";
-	controller->env->DeleteGlobalRef(obj); // restore me
 }
 
-void JNIBufferAdapter::encode(const int& size, void * bufferAddress)
+void JNIBufferAdapter::encode(THREAD_CONTEXT threadContext, const int& size, void * bufferAddress)
 {
-	jobject buffer = controller->env->NewDirectByteBuffer(bufferAddress, size);
-	controller->env->CallVoidMethod(obj, controller->encode, buffer);
+	jobject buffer = JNI_ENV(threadContext)->NewDirectByteBuffer(bufferAddress, size);
+	JNI_ENV(threadContext)->CallVoidMethod(obj, controller->encode, buffer);
 }
 
-void JNIBufferAdapter::done()
+void JNIBufferAdapter::done(THREAD_CONTEXT threadContext)
 {
-	std::cout << "Done called internally\n";
-	controller->env->CallVoidMethod(obj,controller->done); 
+	JNI_ENV(threadContext)->CallVoidMethod(obj,controller->done); 
 	return;
 }
 
-int JNIBufferAdapter::blockSize()
+int JNIBufferAdapter::blockSize(THREAD_CONTEXT threadContext)
 {
-	return controller->env->CallIntMethod(obj,controller->encodeSize); 
+	return JNI_ENV(threadContext)->CallIntMethod(obj,controller->encodeSize); 
 }
 
-void JNIBufferAdapter::onError(long errorCode, std::string error)
+void JNIBufferAdapter::onError(THREAD_CONTEXT threadContext, long errorCode, std::string error)
 {
 	std::cout<< "Calling onError with errorCode " << errorCode << "\n";
-	jstring strError = controller->env->NewStringUTF(error.data());
-	controller->env->CallVoidMethod(obj, controller->error, (jint)errorCode, strError);
+	jstring strError = JNI_ENV(threadContext)->NewStringUTF(error.data());
+	JNI_ENV(threadContext)->CallVoidMethod(obj, controller->error, (jint)errorCode, strError);
 }
+
+void JNIBufferAdapter::destroy(THREAD_CONTEXT threadContext)
+{
+	JNI_ENV(threadContext)->DeleteGlobalRef(obj);
+}

Modified: projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/JNIBufferAdapter.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -1,32 +1,39 @@
 #ifndef JNIBUFFERADAPTER_H_
 #define JNIBUFFERADAPTER_H_
 
+#include <iostream>
+
 #include "BufferAdapter.h"
 #include "AIOController.h"
-#include <iostream>
+#include "JAIODatatypes.h"
 
+
 class JNIBufferAdapter : public BufferAdapter
 {
 private:
 	AIOController * controller;
 	jobject obj;
 	int refs;
+    void destroy(THREAD_CONTEXT threadContext);
+	
 public:
+	// _ob must be a global Reference (use createGloblReferente before calling the constructor)
 	JNIBufferAdapter(AIOController * _controller, jobject _ob);
 	virtual ~JNIBufferAdapter();
-	void encode(const int& size, void *);
-	void done();
-	int blockSize();
-	void onError(long error, std::string error);
-	void addref()
+	void encode(THREAD_CONTEXT threadContext, const int& size, void *);
+	void done(THREAD_CONTEXT threadContext);
+	int blockSize(THREAD_CONTEXT threadContext);
+	void onError(THREAD_CONTEXT threadContext, long error, std::string error);
+	void addref(THREAD_CONTEXT threadContextt)
 	{
 		refs++;
 	}
 	
-	void deleteRef()
+	void deleteRef(THREAD_CONTEXT threadContext)
 	{
 		if (--refs <= 0)
 		{
+			destroy(threadContext);
 			delete this;
 		}
 	}

Modified: projects/jaio/trunk/jaio/native/src/LibAIOController.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/LibAIOController.cpp	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/LibAIOController.cpp	2008-02-18 20:05:24 UTC (rev 3733)
@@ -45,8 +45,6 @@
         if (!controller->error) return 0;
 		
 		
-	    controller->env = env;	
-		
 	    return (jlong)controller;
 	}
 	catch (AIOException& e){
@@ -82,9 +80,6 @@
 		
 		controller->error = env->GetMethodID(clazz,"onError","(ILjava/lang/String;)V");
 		
-		
-	    controller->env = env;	
-		
 	    return (jlong)controller;
 	}
 	catch (AIOException& e){
@@ -98,11 +93,11 @@
 JNIEXPORT void JNICALL Java_org_jboss_jaio_libaioimpl_LibAIOController_append
   (JNIEnv *env, jclass, jlong controllerAddress, jobject obj)
 {
-	try
+	try 
 	{
 		AIOController * controller = (AIOController *) controllerAddress;
-		JNIBufferAdapter * adapter = new JNIBufferAdapter(controller, obj);
-		controller->manager->addData(adapter);
+		JNIBufferAdapter * adapter = new JNIBufferAdapter(controller, env->NewGlobalRef(obj));
+		controller->manager->addData(env, adapter);
 	}
 	catch (AIOException& e)
 	{
@@ -118,7 +113,7 @@
 	try
 	{
 		AIOController * controller = (AIOController *) controllerAddress;
-		controller->manager->pollEvents();
+		controller->manager->pollEvents(env);
 	}
 	catch (AIOException& e)
 	{
@@ -134,7 +129,7 @@
 	try
 	{
 		AIOController * controller = (AIOController *) controllerAddress;
-		controller->manager->validateLowRate();
+		controller->manager->validateLowRate(env);
 	
 	}
 	catch (AIOException& e)

Modified: projects/jaio/trunk/jaio/native/src/Makefile.am
===================================================================
--- projects/jaio/trunk/jaio/native/src/Makefile.am	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/Makefile.am	2008-02-18 20:05:24 UTC (rev 3733)
@@ -5,7 +5,7 @@
  JNIBufferAdapter.cpp  PageManager.h BufferAdapter.h    JNIBufferAdapter.h    \
  JavaUtilities.cpp    org_jboss_jaio_libaioimpl_LibAIOController.h  \
  PageObserver.h FileOutput.h FileOutput.cpp \
- DataManager.cpp DataManager.h AIOException.h
+ DataManager.cpp DataManager.h AIOException.h JAIODatatypes.h
 #libJaio_la_SOURCES = LibAIOController.cpp AIOController.cpp 
 
  

Modified: projects/jaio/trunk/jaio/native/src/PageManager.cpp
===================================================================
--- projects/jaio/trunk/jaio/native/src/PageManager.cpp	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/PageManager.cpp	2008-02-18 20:05:24 UTC (rev 3733)
@@ -1,3 +1,5 @@
+#include <sstream>
+
 #include "BufferAdapter.h"
 #include "PageManager.h"
 #include "pthread.h"
@@ -2,4 +4,5 @@
 #include "LockClass.h"
-#include <sstream>
 
+#include "AIOException.h"
+
 PageManager::PageManager(int _pageSize, PageObserver * _observer)
@@ -16,19 +19,23 @@
 {
 	::pthread_mutex_destroy(&pageMutex);
 	free(memoryArea);
+}
+
+void PageManager::destroy(THREAD_CONTEXT threadContext)
+{
 	for (std::list<BufferAdapter *>::iterator iter = list->begin(); iter != list->end(); iter ++)
 	{
-		(*iter)->deleteRef();
+		(*iter)->deleteRef(threadContext);
 	}
 	delete list;
 }
 
 
-void PageManager::addData(BufferAdapter * adapter)
+void PageManager::addData(THREAD_CONTEXT threadContext, BufferAdapter * adapter)
 {
 
-	long size = adapter->blockSize();
-	
+	long size = adapter->blockSize(threadContext);
+
 	LockClass lock(&pageMutex);
 	
 	if (pagePosition + size > pageSize)
@@ -37,14 +44,14 @@
 		
 		char * mem = (char *)malloc(size);
 		memset(mem, 0, size);
-		adapter->encode(size, mem);
+		adapter->encode(threadContext, size, mem);
 		long local = 0;
 		
 		adapter->setBlocks(((size - bytesToPage) / pageSize)   + 1);
 
 		while (size - local > 0)
 		{
-			adapter->addref();
+			adapter->addref(threadContext);
 			long toBeCompleted = pageSize - pagePosition;
 			long minValue = size-local > toBeCompleted ? toBeCompleted : size-local;
 			memcpy(memoryArea + pagePosition, mem + local, minValue);
@@ -52,13 +59,13 @@
 			list->push_back(adapter);
 			if (pagePosition >= pageSize)
 			{
-				flushMemory();
+				flushMemory(threadContext);
 				local+=toBeCompleted;
 			}
 		}
 		
 		
-		adapter->deleteRef();
+		adapter->deleteRef(threadContext);
 		
 		free(mem);
 	}
@@ -66,7 +73,7 @@
 	{
 		list->push_back(adapter);
 		
-		adapter->encode (size, memoryArea + pagePosition);
+		adapter->encode (threadContext, size, memoryArea + pagePosition);
 		
 		pagePosition += size;
 	}
@@ -80,14 +87,15 @@
 	pagePosition = 0;
 }
 
-void PageManager::flushMemory()
+void PageManager::flushMemory(THREAD_CONTEXT threadContext)
 {
-    observer->completePage(pagePosition, memoryArea, list);
+    observer->completePage(threadContext, pagePosition, memoryArea, list);
     initMemory();
 }
 
-void PageManager::pollEvents()
+void PageManager::pollEvents(THREAD_CONTEXT threadContext)
 {
-    observer->completePage(pagePosition, memoryArea, list);
-    initMemory();
+    //observer->completePage(pagePosition, memoryArea, list);
+    //initMemory();
+	throw AIOException (100, "Not implemented");
 }

Modified: projects/jaio/trunk/jaio/native/src/PageManager.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/PageManager.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/PageManager.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -1,10 +1,12 @@
 #ifndef PAGEMANAGER_H_
 #define PAGEMANAGER_H_
 
+#include "pthread.h"
+
 #include "BufferAdapter.h"
 #include "PageObserver.h"
 #include "DataManager.h"
-#include "pthread.h"
+#include "JAIODatatypes.h"
 
 #include <list>
 
@@ -26,15 +28,17 @@
 public:
 	PageManager(int pageSize, PageObserver * observer);
 	virtual ~PageManager();
-	void addData(BufferAdapter* adapter);
+	void addData(THREAD_CONTEXT threadContext, BufferAdapter* adapter);
 
-	void pollEvents();
+	void pollEvents(THREAD_CONTEXT threadContext);
 	
-	void validateLowRate()
+	void destroy(THREAD_CONTEXT threadContext);
+	
+	void validateLowRate(THREAD_CONTEXT threadContext)
 	{
 	}
 	
-	void flushMemory();
+	void flushMemory(THREAD_CONTEXT context);
 	
 
 };

Modified: projects/jaio/trunk/jaio/native/src/PageObserver.h
===================================================================
--- projects/jaio/trunk/jaio/native/src/PageObserver.h	2008-02-18 15:21:32 UTC (rev 3732)
+++ projects/jaio/trunk/jaio/native/src/PageObserver.h	2008-02-18 20:05:24 UTC (rev 3733)
@@ -3,6 +3,7 @@
 
 #include <list>
 #include "BufferAdapter.h"
+#include "JAIODatatypes.h"
 
 /**
  * This is probably going to be the file itself
@@ -20,7 +21,7 @@
 	}
 	
 	// Implementations of PageObserver should also delete the list, and delete each element of BufferAdapter calling BufferAdapter::killYourslef()
-	virtual void completePage(long size, void *, std::list<BufferAdapter *> *)=0;
+	virtual void completePage(THREAD_CONTEXT threadContext, long size, void *, std::list<BufferAdapter *> *)=0;
 };
 
 #endif /*PAGEOBSERVER_H_*/




More information about the jboss-cvs-commits mailing list