From: rtrimana <rtrimana@uci.edu>
Date: Sat, 5 Nov 2016 21:11:09 +0000 (-0700)
Subject: Doing the same set of transformations for C++
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=05b04153ef2ac0837c6b8ebda8402aee13a2b24b;p=iot2.git

Doing the same set of transformations for C++
---

diff --git a/iotjava/Makefile b/iotjava/Makefile
index 7427642..267c006 100644
--- a/iotjava/Makefile
+++ b/iotjava/Makefile
@@ -31,23 +31,23 @@ runtime:
 PHONY += rmi
 rmi:
 	mkdir -p $(BIN_DIR)
-	$(JAVAC) -cp .:../$(BIN_DIR) -d $(BIN_DIR) iotrmi/Java/*.java
-	$(JAVAC) -cp .:../$(BIN_DIR) -d $(BIN_DIR) iotrmi/Java/sample/*.java
+#	$(JAVAC) -cp .:../$(BIN_DIR) -d $(BIN_DIR) iotrmi/Java/*.java
+#	$(JAVAC) -cp .:../$(BIN_DIR) -d $(BIN_DIR) iotrmi/Java/sample/*.java
 #	mkdir -p $(BIN_DIR)/iotrmi/C++
 	#$(G++) iotrmi/C++/IoTSocketServer.cpp -o $(BIN_DIR)/iotrmi/C++/IoTSocketServer.out
 	#$(G++) iotrmi/C++/IoTSocketClient.cpp -o $(BIN_DIR)/iotrmi/C++/IoTSocketClient.out
 #	$(G++) iotrmi/C++/IoTRMICall.cpp -o $(BIN_DIR)/iotrmi/C++/IoTRMICall.out --std=c++11
 #	$(G++) iotrmi/C++/IoTRMIObject.cpp -o $(BIN_DIR)/iotrmi/C++/IoTRMIObject.out --std=c++11
-#	mkdir -p $(BIN_DIR)/iotrmi/C++/sample
+	mkdir -p $(BIN_DIR)/iotrmi/C++/sample
 	#$(G++) iotrmi/C++/sample/CallBackInterface.hpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBackInterface.out --std=c++11
 	#$(G++) iotrmi/C++/sample/CallBack.hpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack.out --std=c++11
-	#$(G++) iotrmi/C++/sample/CallBack_CBStub.hpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_CBStub.out --std=c++11
-	#$(G++) iotrmi/C++/sample/CallBack_CBSkeleton.hpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_CBSkeleton.out --std=c++11
-#	$(G++) iotrmi/C++/sample/CallBack_Stub.cpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_Stub.out --std=c++11
-#	$(G++) iotrmi/C++/sample/CallBack_Skeleton.cpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_Skeleton.out --std=c++11
+	$(G++) iotrmi/C++/sample/CallBack_CBStub.hpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_CBStub.out --std=c++11
+	$(G++) iotrmi/C++/sample/CallBack_CBSkeleton.hpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_CBSkeleton.out --std=c++11
+	$(G++) iotrmi/C++/sample/CallBack_Stub.cpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_Stub.out --std=c++11
+	$(G++) iotrmi/C++/sample/CallBack_Skeleton.cpp -o $(BIN_DIR)/iotrmi/C++/sample/CallBack_Skeleton.out --std=c++11
 	#$(G++) iotrmi/C++/sample/TestClass.cpp -o $(BIN_DIR)/iotrmi/C++/sample/TestClass.out --std=c++11
-#	$(G++) iotrmi/C++/sample/TestClass_Stub.cpp -o $(BIN_DIR)/iotrmi/C++/sample/TestClass_Stub.out --std=c++11 -pthread
-#	$(G++) iotrmi/C++/sample/TestClass_Skeleton.cpp -o $(BIN_DIR)/iotrmi/C++/sample/TestClass_Skeleton.out --std=c++11 -pthread
+	$(G++) iotrmi/C++/sample/TestClass_Stub.cpp -o $(BIN_DIR)/iotrmi/C++/sample/TestClass_Stub.out --std=c++11 -pthread
+	$(G++) iotrmi/C++/sample/TestClass_Skeleton.cpp -o $(BIN_DIR)/iotrmi/C++/sample/TestClass_Skeleton.out --std=c++11 -pthread
 	#$(G++) iotrmi/C++/sample/Test.cpp -o ../bin/iotrmi/C++/sample/Test.out --std=c++11 -lpthread
 	#$(G++) iotrmi/C++/sample/Test2.cpp -o ../bin/iotrmi/C++/sample/Test2.out --std=c++11 -pthread -pg
 #	$(G++) iotrmi/C++/sample/StructC.cpp -o ../bin/iotrmi/C++/sample/StructC.out --std=c++11
diff --git a/iotjava/iotrmi/C++/IoTRMICall.hpp b/iotjava/iotrmi/C++/IoTRMICall.hpp
index 3637809..729b036 100644
--- a/iotjava/iotrmi/C++/IoTRMICall.hpp
+++ b/iotjava/iotrmi/C++/IoTRMICall.hpp
@@ -25,14 +25,13 @@ mutex mtx;
 
 class IoTRMICall {
 	public:
-		IoTRMICall(int _port, const char* _address, int _rev, bool* _bResult, 
-					const string _methodSign[], const int _size);
+		IoTRMICall(int _port, const char* _address, int _rev, bool* _bResult);
 		~IoTRMICall();
 		// Public methods
 		int		methodLength(string paramCls[], void* paramObj[], int numParam);
-		char*	methodToBytes(int objectId, string methodSign, string paramCls[], void* paramObj[],
+		char*	methodToBytes(int objectId, int methId, string paramCls[], void* paramObj[],
 								char* method, int numParam);
-		void*	remoteCall(int objectId, string methodSign, string retType, string paramCls[], 
+		void*	remoteCall(int objectId, int methodId, string retType, string paramCls[], 
 								void* paramObj[], int numParam, void* retObj);
 
 	private:
@@ -46,9 +45,8 @@ class IoTRMICall {
 
 
 // Constructor
-IoTRMICall::IoTRMICall(int _port, const char* _address, int _rev, bool* _bResult, const string _methodSign[], const int _size) {
+IoTRMICall::IoTRMICall(int _port, const char* _address, int _rev, bool* _bResult) {
 
-	getMethodIds(_methodSign, _size);
 	rmiUtil = new IoTRMIUtil();
 	if (rmiUtil == NULL) {
 		perror("IoTRMICall: IoTRMIUtil isn't initialized!");
@@ -80,7 +78,7 @@ IoTRMICall::~IoTRMICall() {
 
 
 // Calls a method remotely by passing in parameters and getting a return object
-void* IoTRMICall::remoteCall(int objectId, string methodSign, string retType, string paramCls[], 
+void* IoTRMICall::remoteCall(int objectId, int methodId, string retType, string paramCls[], 
 								void* paramObj[], int numParam, void* retObj) {
 
 	// Critical section that is used by different objects
@@ -88,7 +86,7 @@ void* IoTRMICall::remoteCall(int objectId, string methodSign, string retType, st
 	// Send input parameters
 	int len = methodLength(paramCls, paramObj, numParam);
 	char method[len];
-	methodToBytes(objectId, methodSign, paramCls, paramObj, method, numParam);
+	methodToBytes(objectId, methodId, paramCls, paramObj, method, numParam);
 //	IoTRMIUtil::printBytes(method, len, false);
 	// Send bytes
 	fflush(NULL);
@@ -133,7 +131,7 @@ int IoTRMICall::methodLength(string paramCls[], void* paramObj[], int numParam)
 
 
 // Convert method and its parameters into bytes
-char* IoTRMICall::methodToBytes(int objectId, string methodSign, string paramCls[], 
+char* IoTRMICall::methodToBytes(int objectId, int methId, string paramCls[], 
 		void* paramObj[], char* method, int numParam) {
 
 	// Get object Id in bytes
@@ -143,7 +141,6 @@ char* IoTRMICall::methodToBytes(int objectId, string methodSign, string paramCls
 	int pos = IoTRMIUtil::OBJECT_ID_LEN;
 	// Get method Id in bytes
 	char methodId[IoTRMIUtil::METHOD_ID_LEN];
-	int methId = mapSign2MethodId.find(methodSign)->second;
 	IoTRMIUtil::intToByteArray(methId, methodId);
 	memcpy(method + pos, methodId, IoTRMIUtil::METHOD_ID_LEN);
 	pos = pos + IoTRMIUtil::METHOD_ID_LEN;
@@ -169,19 +166,6 @@ char* IoTRMICall::methodToBytes(int objectId, string methodSign, string paramCls
 	return method;
 }
 
-
-// *************
-//    Helpers
-// *************
-void IoTRMICall::getMethodIds(const string methodSign[], const int size) {
-
-	for(int i = 0; i < size; i++) {
-		mapSign2MethodId[methodSign[i]] = i;
-	}
-}
-
-
-
 #endif
 
 
diff --git a/iotjava/iotrmi/C++/IoTRMIObject.hpp b/iotjava/iotrmi/C++/IoTRMIObject.hpp
index 830be11..6cffb4e 100644
--- a/iotjava/iotrmi/C++/IoTRMIObject.hpp
+++ b/iotjava/iotrmi/C++/IoTRMIObject.hpp
@@ -22,7 +22,7 @@ using namespace std;
 
 class IoTRMIObject {
 	public:
-		IoTRMIObject(int _port, bool* _bResult, const string _methodSign[], const int _size);
+		IoTRMIObject(int _port, bool* _bResult);
 		~IoTRMIObject();
 		// Public methods
 		void		sendReturnObj(void* retObj, string type);
@@ -31,11 +31,11 @@ class IoTRMIObject {
 		void		setMethodBytes(char* _methodBytes);
 		int			getObjectId();
 		static int	getObjectId(char* methodBytes);
-		string		getSignature();
+		int			getMethodId();
 		void**		getMethodParams(string paramCls[], int numParam, void* paramObj[]);
 
 	private:
-		map<int,string>		mapMethodId2Sign;
+		//map<int,string>		mapMethodId2Sign;
 		IoTRMIUtil			*rmiUtil;
 		IoTSocketServer		*rmiServer;
 		char*				methodBytes;
@@ -47,7 +47,7 @@ class IoTRMIObject {
 
 
 // Constructor
-IoTRMIObject::IoTRMIObject(int _port, bool* _bResult, const string _methodSign[], const int _size) {
+IoTRMIObject::IoTRMIObject(int _port, bool* _bResult) {
 
 	rmiUtil = new IoTRMIUtil();
 	if (rmiUtil == NULL) {
@@ -56,7 +56,7 @@ IoTRMIObject::IoTRMIObject(int _port, bool* _bResult, const string _methodSign[]
 
 	methodBytes = NULL;
 	methodLen = 0;
-	getMethodIds(_methodSign, _size);
+	//getMethodIds(_methodSign, _size);
 
 	rmiServer = new IoTSocketServer(_port, _bResult);
 	if (rmiServer == NULL) {
@@ -147,15 +147,15 @@ int IoTRMIObject::getObjectId(char* methodBytes) {
 
 
 // Set method bytes
-void IoTRMIObject::setMethodBytes(char* _methodBytes) {
+/*void IoTRMIObject::setMethodBytes(char* _methodBytes) {
 
 	// Set method bytes
 	methodBytes = _methodBytes;
-}
+}*/
 
 
-// Get signature from the method-Id-to-method-signature map
-string IoTRMIObject::getSignature() {
+// Get methodId
+int IoTRMIObject::getMethodId() {
 
 	// Get method Id
 	char methodIdBytes[IoTRMIUtil::METHOD_ID_LEN];
@@ -164,7 +164,7 @@ string IoTRMIObject::getSignature() {
 	int methodId = 0;
 	IoTRMIUtil::byteArrayToInt(&methodId, methodIdBytes);
 	
-	return mapMethodId2Sign.find(methodId)->second;
+	return methodId;
 }
 
 
@@ -202,17 +202,6 @@ void** IoTRMIObject::getMethodParams(string paramCls[], int numParam, void* para
 }
 
 
-// *************
-//    Helpers
-// *************
-void IoTRMIObject::getMethodIds(const string methodSign[], const int size) {
-
-	for(int i = 0; i < size; i++) {
-		mapMethodId2Sign[i] = methodSign[i];
-	}
-}
-
-
 #endif
 
 
diff --git a/iotjava/iotrmi/C++/sample/CallBack_CBSkeleton.hpp b/iotjava/iotrmi/C++/sample/CallBack_CBSkeleton.hpp
index 510ed64..ffd6c42 100644
--- a/iotjava/iotrmi/C++/sample/CallBack_CBSkeleton.hpp
+++ b/iotjava/iotrmi/C++/sample/CallBack_CBSkeleton.hpp
@@ -41,7 +41,6 @@ CallBack_CBSkeleton::CallBack_CBSkeleton(CallBackInterface* _cb, int _objectId)
 
 	cb = _cb;
 	objectId = _objectId;
-	cout << "Creating CallBack_Skeleton and waiting!" << endl;
 }
 
 
@@ -87,15 +86,14 @@ void CallBack_CBSkeleton::___setInt(IoTRMIObject* rmiObj) {
 
 void CallBack_CBSkeleton::invokeMethod(IoTRMIObject* rmiObj) {
 
-	string methodSign = rmiObj->getSignature();
+	int methodId = rmiObj->getMethodId();
 	
-	if (methodSign.compare("intprintInt()") == 0) {
-		___printInt(rmiObj);
-	} else if (methodSign.compare("voidsetInt(int)") == 0) {
-		___setInt(rmiObj);
-	} else {
-		string error = "Signature not recognized: " + string(methodSign);
-		throw error;
+	switch (methodId) {
+		case 0 : ___printInt(rmiObj); break;
+		case 1 : ___setInt(rmiObj); break;
+		default:
+			string error = "Method Id not recognized!";
+			throw error;
 	}
 }
 
diff --git a/iotjava/iotrmi/C++/sample/CallBack_CBStub.hpp b/iotjava/iotrmi/C++/sample/CallBack_CBStub.hpp
index 090b2c4..0ab69b5 100644
--- a/iotjava/iotrmi/C++/sample/CallBack_CBStub.hpp
+++ b/iotjava/iotrmi/C++/sample/CallBack_CBStub.hpp
@@ -60,14 +60,13 @@ int CallBack_CBStub::printInt() {
 
 	cout << "Got here in printInt()" << endl;
 	int numParam = 0;
-	string sign = "intprintInt()";
+	int methodId = 0;
 	string retType = "int";
 	string paramCls[] = { };
 	void* paramObj[] = { };
 	int retVal = 0;
 	void* retObj = &retVal;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
-	cout << "Return value from printInt(): " << retVal << endl;
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 	return retVal;
 }
 
@@ -75,12 +74,12 @@ int CallBack_CBStub::printInt() {
 void CallBack_CBStub::setInt(int _i) {
 
 	int numParam = 1;
-	string sign = "voidsetInt(int)";
+	int methodId = 1;
 	string retType = "void";
 	string paramCls[] = { "int" };
 	void* paramObj[] = { &_i };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 #endif
diff --git a/iotjava/iotrmi/C++/sample/CallBack_Skeleton.hpp b/iotjava/iotrmi/C++/sample/CallBack_Skeleton.hpp
index ff80e02..9ab5c03 100644
--- a/iotjava/iotrmi/C++/sample/CallBack_Skeleton.hpp
+++ b/iotjava/iotrmi/C++/sample/CallBack_Skeleton.hpp
@@ -40,7 +40,7 @@ CallBack_Skeleton::CallBack_Skeleton(CallBackInterface* _cb, int _port) {
 
 	bool _bResult = false;
 	cb = _cb;
-	rmiObj = new IoTRMIObject(_port, &_bResult, methodSignatures, size);
+	rmiObj = new IoTRMIObject(_port, &_bResult);
 	___waitRequestInvokeMethod();
 }
 
@@ -95,16 +95,14 @@ void CallBack_Skeleton::___waitRequestInvokeMethod() {
 	while (true) {
 
 		rmiObj->getMethodBytes();
-		string methodSign = rmiObj->getSignature();
-		cout << "Method sign: " << methodSign << endl;
+		int methodId = rmiObj->getMethodId();
 		
-		if (methodSign.compare("intprintInt()") == 0) {
-			___printInt();
-		} else if (methodSign.compare("voidsetInt(int)") == 0) {
-			___setInt();
-		} else {
-			string error = "Signature not recognized: " + string(methodSign);
-			throw error;
+		switch (methodId) {
+			case 0 : ___printInt(); break;
+			case 1 : ___setInt(); break;
+			default:
+				string error = "Method Id not recognized!";
+				throw error;
 		}
 	}
 }
diff --git a/iotjava/iotrmi/C++/sample/CallBack_Stub.hpp b/iotjava/iotrmi/C++/sample/CallBack_Stub.hpp
index 42f1059..9bdcef4 100644
--- a/iotjava/iotrmi/C++/sample/CallBack_Stub.hpp
+++ b/iotjava/iotrmi/C++/sample/CallBack_Stub.hpp
@@ -45,7 +45,7 @@ CallBack_Stub::CallBack_Stub() {
 CallBack_Stub::CallBack_Stub(int _port, const char* _address, int _rev, bool* _bResult) {
 
 	address = _address;
-	rmiCall = new IoTRMICall(_port, _address, _rev, _bResult, methodSignatures, size);
+	rmiCall = new IoTRMICall(_port, _address, _rev, _bResult);
 }
 
 
@@ -61,13 +61,13 @@ CallBack_Stub::~CallBack_Stub() {
 int CallBack_Stub::printInt() {
 
 	int numParam = 0;
-	string sign = "intprintInt()";
+	int methodId = 0;
 	string retType = "int";
 	string paramCls[] = { };
 	void* paramObj[] = { };
 	int retVal = 0;
 	void* retObj = &retVal;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 	return retVal;
 }
 
@@ -75,12 +75,12 @@ int CallBack_Stub::printInt() {
 void CallBack_Stub::setInt(int _i) {
 
 	int numParam = 1;
-	string sign = "voidsetInt(int)";
+	int methodId = 1;
 	string retType = "void";
 	string paramCls[] = { "int" };
 	void* paramObj[] = { &_i };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 #endif
diff --git a/iotjava/iotrmi/C++/sample/TestClass_Skeleton.hpp b/iotjava/iotrmi/C++/sample/TestClass_Skeleton.hpp
index dd66cc6..f8bf9bf 100644
--- a/iotjava/iotrmi/C++/sample/TestClass_Skeleton.hpp
+++ b/iotjava/iotrmi/C++/sample/TestClass_Skeleton.hpp
@@ -57,19 +57,19 @@ class TestClass_Skeleton : public TestClassInterface {
 
 
 const string TestClass_Skeleton::methodSignatures[TestClass_Skeleton::size] = {
-	"voidsetA(int)",
-	"voidsetB(float)",
-	"voidsetC(string)",
-	"sumArray(string[])",
+	"voidsetA(int)", // 0
+	"voidsetB(float)", // 1
+	"voidsetC(string)", // 2
+	"sumArray(string[])", // 3
 	//"sumArray(int[])",
-	"intsetAndGetA(int)",
-	"intsetACAndGetA(string,int)",
-	"intcallBack()",
-	"voidregisterCallBack(CallBackInterface)",
-	"voidregisterCallBack(CallBackInterface[])",
-	"registercallback",
-	"handleStruct(StructJ[])",
-	"structsize"
+	"intsetAndGetA(int)", // 4
+	"intsetACAndGetA(string,int)", // 5
+	"intcallBack()", // 6
+	"voidregisterCallBack(CallBackInterface)", // 7
+	"voidregisterCallBack(CallBackInterface[])", // 8
+	"registercallback", // 9
+	"handleStruct(StructJ[])", // 10
+	"structsize" // 11
 };
 
 
@@ -80,7 +80,7 @@ TestClass_Skeleton::TestClass_Skeleton(TestClassInterface* _tc, int _port) {
 
 	bool _bResult = false;
 	tc = _tc;
-	rmiObj = new IoTRMIObject(_port, &_bResult, methodSignatures, size);
+	rmiObj = new IoTRMIObject(_port, &_bResult);
 	___waitRequestInvokeMethod();
 }
 
@@ -250,8 +250,7 @@ void TestClass_Skeleton::___regCB() {
 	rmiObj->getMethodParams(paramCls, numParam, paramObj);
 	// Instantiate IoTRMICall object
 	bool bResult = false;
-	rmiCall = new IoTRMICall(param1, param2.c_str(), param3, &bResult, 
-		CallBack_CBStub::methodSignatures, CallBack_CBStub::size);
+	rmiCall = new IoTRMICall(param1, param2.c_str(), param3, &bResult);
 }
 
 
@@ -341,39 +340,26 @@ void TestClass_Skeleton::___waitRequestInvokeMethod() {
 	while (true) {
 
 		rmiObj->getMethodBytes();
-		string methodSign = rmiObj->getSignature();
-		cout << "Method sign: " << methodSign << endl;
+		int methodId = rmiObj->getMethodId();
 		
-		if (methodSign.compare("voidsetA(int)") == 0) {
-			___setA();
-		} else if (methodSign.compare("voidsetB(float)") == 0) {
-			___setB();
-		} else if (methodSign.compare("voidsetC(string)") == 0) {
-			___setC();
-		} else if (methodSign.compare("sumArray(string[])") == 0) {
-			___sumArray();
-		/*} else if (methodSign.compare("sumArray(int[])") == 0) {
-			____sumArray();*/
-		} else if (methodSign.compare("intsetAndGetA(int)") == 0) {
-			___setAndGetA();
-		} else if (methodSign.compare("intsetACAndGetA(string,int)") == 0) {
-			___setACAndGetA();
-		} else if (methodSign.compare("voidregisterCallBack(CallBackInterface)") == 0) {
-			//
-		} else if (methodSign.compare("voidregisterCallBack(CallBackInterface[])") == 0) {
-			____registerCallback();
-		} else if (methodSign.compare("registercallback") == 0) {
-			___regCB();
-		} else if (methodSign.compare("intcallBack()") == 0) {
-			___callBack();
-		// Handle struct
-		} else if (methodSign.compare("structsize") == 0) {
-			structsize1 = ___structSize();
-		} else if (methodSign.compare("handleStruct(StructJ[])") == 0) {
-			___handleStruct(structsize1);
-		} else {
-			string error = "Signature unrecognized: " + string(methodSign);
-			throw error;
+		switch (methodId) {
+			case 0: ___setA(); break;
+			case 1: ___setB(); break;
+			case 2: ___setC(); break;
+			case 3: ___sumArray(); break;
+		/*  case 3: ____sumArray(); break;*/
+			case 4: ___setAndGetA(); break;
+			case 5: ___setACAndGetA(); break;
+			case 6: ___callBack(); break; 
+			case 7: ___registerCallback(); break;
+			case 8:	____registerCallback(); break;
+			case 9: ___regCB(); break;
+			// Handle struct
+			case 10: ___handleStruct(structsize1); break;
+			case 11: structsize1 = ___structSize(); break;
+			default:
+				string error = "Method Id not recognized!";
+				throw error;
 		}
 	}
 }
diff --git a/iotjava/iotrmi/C++/sample/TestClass_Stub.hpp b/iotjava/iotrmi/C++/sample/TestClass_Stub.hpp
index db12b48..1a623f1 100644
--- a/iotjava/iotrmi/C++/sample/TestClass_Stub.hpp
+++ b/iotjava/iotrmi/C++/sample/TestClass_Stub.hpp
@@ -54,19 +54,19 @@ int TestClass_Stub::objIdCnt = 0;
 
 
 const string TestClass_Stub::methodSignatures[TestClass_Stub::size] = {
-	"voidsetA(int)",
-	"voidsetB(float)",
-	"voidsetC(string)",
-	"sumArray(string[])",
+	"voidsetA(int)", // 0
+	"voidsetB(float)", // 1
+	"voidsetC(string)", // 2
+	"sumArray(string[])", // 3
 	//"sumArray(int[])",
-	"intsetAndGetA(int)",
-	"intsetACAndGetA(string,int)",
-	"intcallBack()",
-	"voidregisterCallBack(CallBackInterface)",
-	"voidregisterCallBack(CallBackInterface[])",
-	"registercallback",
-	"handleStruct(StructJ[])",
-	"structsize"
+	"intsetAndGetA(int)", // 4
+	"intsetACAndGetA(string,int)", // 5
+	"intcallBack()", // 6
+	"voidregisterCallBack(CallBackInterface)", // 7
+	"voidregisterCallBack(CallBackInterface[])", // 8
+	"registercallback", // 9
+	"handleStruct(StructJ[])", // 10
+	"structsize" // 11
 };
 
 
@@ -80,7 +80,7 @@ TestClass_Stub::TestClass_Stub() {
 TestClass_Stub::TestClass_Stub(int _port, const char* _address, int _rev, bool* _bResult, vector<int> _ports) {
 
 	address = _address;
-	rmiCall = new IoTRMICall(_port, _address, _rev, _bResult, methodSignatures, size);
+	rmiCall = new IoTRMICall(_port, _address, _rev, _bResult);
 	ports = _ports;
 	// Start thread
 	thread th1 (&TestClass_Stub::____init_CallBack, this);
@@ -111,7 +111,7 @@ TestClass_Stub::~TestClass_Stub() {
 void TestClass_Stub::____init_CallBack() {
 
 	bool bResult = false;
-	rmiObj = new IoTRMIObject(ports[0], &bResult, CallBack_CBSkeleton::methodSignatures, CallBack_CBSkeleton::size);
+	rmiObj = new IoTRMIObject(ports[0], &bResult);
 	while (true) {
 		char* method = rmiObj->getMethodBytes();
 		int objId = IoTRMIObject::getObjectId(method);
@@ -131,62 +131,62 @@ void TestClass_Stub::____init_CallBack() {
 void TestClass_Stub::____registerCallBack() {
 
 	int numParam = 3;
-	string sign = "registercallback";
+	int methodId = 9;
 	string retType = "void";
 	string paramCls[] = { "int", "string", "int" };
 	int rev = 0;
 	void* paramObj[] = { &ports[0], &address, &rev };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 
 void TestClass_Stub::setA(int _int) {
 
 	int numParam = 1;
-	string sign = "voidsetA(int)";
+	int methodId = 0;
 	string retType = "void";
 	string paramCls[] = { "int" };
 	void* paramObj[] = { &_int };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 
 void TestClass_Stub::setB(float _float) {
 
 	int numParam = 1;
-	string sign = "voidsetB(float)";
+	int methodId = 1;
 	string retType = "void";
 	string paramCls[] = { "float" };
 	void* paramObj[] = { &_float };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 
 void TestClass_Stub::setC(string _string) {
 
 	int numParam = 1;
-	string sign = "voidsetC(string)";
+	int methodId = 2;
 	string retType = "void";
 	string paramCls[] = { "string" };
 	void* paramObj[] = { &_string };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 
 string TestClass_Stub::sumArray(vector<string> newA) {
 
 	int numParam = 1;
-	string sign = "sumArray(string[])";
+	int methodId = 3;
 	string retType = "string";
 	string paramCls[] = { "string[]" };
 	void* paramObj[] = { &newA };
 	string retVal = "";
 	void* retObj = &retVal;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 	return retVal;
 }
 
@@ -209,13 +209,13 @@ string TestClass_Stub::sumArray(vector<string> newA) {
 int TestClass_Stub::setAndGetA(int newA) {
 
 	int numParam = 1;
-	string sign = "intsetAndGetA(int)";
+	int methodId = 4;
 	string retType = "int";
 	string paramCls[] = { "int" };
 	void* paramObj[] = { &newA };
 	int retVal = 0;
 	void* retObj = &retVal;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 	return retVal;
 }
 
@@ -223,13 +223,13 @@ int TestClass_Stub::setAndGetA(int newA) {
 int TestClass_Stub::setACAndGetA(string newC, int newA) {
 
 	int numParam = 2;
-	string sign = "intsetACAndGetA(string,int)";
+	int methodId = 5;
 	string retType = "int";
 	string paramCls[] = { "string", "int" };
 	void* paramObj[] = { &newC, &newA };
 	int retVal = 0;
 	void* retObj = &retVal;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 	return retVal;
 }
 
@@ -248,26 +248,26 @@ void TestClass_Stub::registerCallback(vector<CallBackInterface*> _cb) {
 	}
 
 	int numParam = 1;
-	string sign = "voidregisterCallBack(CallBackInterface[])";
+	int methodId = 8;
 	string retType = "void";
 	string paramCls[] = { "int" };
 	int param1 = _cb.size();
 	void* paramObj[] = { &param1 };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 }
 
 
 int TestClass_Stub::callBack() {
 
 	int numParam = 0;
-	string sign = "intcallBack()";
+	int methodId = 6;
 	string retType = "int";
 	string paramCls[] = { };
 	void* paramObj[] = { };
 	int retVal = 0;
 	void* retObj = &retVal;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 	return retVal;
 }
 
@@ -275,16 +275,16 @@ int TestClass_Stub::callBack() {
 void TestClass_Stub::handleStruct(vector<data> vecData) {
 
 	int numParam = 1;
-	string sign = "structsize";
+	int methodId = 11;
 	string retType = "void";
 	string paramCls[] = { "int" };
 	int structsize = vecData.size();
 	void* paramObj[] = { &structsize };
 	void* retObj = NULL;
-	rmiCall->remoteCall(objectId, sign, retType, paramCls, paramObj, numParam, retObj);
+	rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
 
 	int numParam2 = 3*vecData.size();
-	string sign2 = "handleStruct(StructJ[])";
+	int methodId2 = 10;
 	string retType2 = "void";
 	string paramCls2[numParam2];
 	void* paramObj2[numParam2];
@@ -299,7 +299,7 @@ void TestClass_Stub::handleStruct(vector<data> vecData) {
 	}
 	void* retObj2 = NULL;
 	cout << "In handle struct 3!" << endl;
-	rmiCall->remoteCall(objectId, sign2, retType2, paramCls2, paramObj2, numParam2, retObj2);
+	rmiCall->remoteCall(objectId, methodId2, retType2, paramCls2, paramObj2, numParam2, retObj2);
 }
 
 
diff --git a/iotjava/iotrmi/Java/IoTRMIObject.java b/iotjava/iotrmi/Java/IoTRMIObject.java
index 317ed1f..e801e44 100644
--- a/iotjava/iotrmi/Java/IoTRMIObject.java
+++ b/iotjava/iotrmi/Java/IoTRMIObject.java
@@ -91,11 +91,11 @@ public class IoTRMIObject {
 	/**
 	 * setMethodBytes() sets bytes for method
 	 */
-	public void setMethodBytes(byte[] _methodBytes) throws IOException {
+	/*public void setMethodBytes(byte[] _methodBytes) throws IOException {
 
 		// Set method bytes
 		methodBytes = _methodBytes;
-	}
+	}*/
 
 
 	/**
diff --git a/iotjava/iotrmi/Java/sample/CallBack_CBSkeleton.java b/iotjava/iotrmi/Java/sample/CallBack_CBSkeleton.java
index 4149630..cb6b9d8 100644
--- a/iotjava/iotrmi/Java/sample/CallBack_CBSkeleton.java
+++ b/iotjava/iotrmi/Java/sample/CallBack_CBSkeleton.java
@@ -60,7 +60,7 @@ public class CallBack_CBSkeleton implements CallBackInterface {
 			case 0: ___printInt(rmiObj); break;
 			case 1: ___setInt(rmiObj); break;
 			default: 
-				throw new Error("Signature not recognized!");
+				throw new Error("Method Id not recognized!");
 		}
 	}
 
diff --git a/iotjava/iotrmi/Java/sample/CallBack_Skeleton.java b/iotjava/iotrmi/Java/sample/CallBack_Skeleton.java
index ed297c8..3d540f1 100644
--- a/iotjava/iotrmi/Java/sample/CallBack_Skeleton.java
+++ b/iotjava/iotrmi/Java/sample/CallBack_Skeleton.java
@@ -65,7 +65,7 @@ public class CallBack_Skeleton implements CallBackInterface {
 					case 0:	___printInt(); break;
 					case 1: ___setInt(); break;
 					default:
-						throw new Error("Signature not recognized!");
+						throw new Error("Method Id not recognized!");
 				}
 			}
 		}
diff --git a/iotjava/iotrmi/Java/sample/TestClass_CBSkeleton.java b/iotjava/iotrmi/Java/sample/TestClass_CBSkeleton.java
deleted file mode 100644
index 3435959..0000000
--- a/iotjava/iotrmi/Java/sample/TestClass_CBSkeleton.java
+++ /dev/null
@@ -1,182 +0,0 @@
-package iotrmi.Java.sample;
-
-import java.io.IOException;
-import java.util.Set;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.HashMap;
-
-import iotrmi.Java.IoTRMIObject;
-import iotrmi.Java.IoTRMICall;
-
-public class TestClass_CBSkeleton implements TestClassInterface {
-
-	/**
-	 * Class Constants
-	 */
-	private int objectId = 0;	// Default value is 0
-	private static int objIdCnt = 0; // Counter for callback object Ids
-	private final static String[] methodSignatures = {
-
-		"voidsetA(int)",
-		"voidsetB(float)",
-		"voidsetC(string)",
-		"sumArray(string[])",
-		"intsetAndGetA(int)",
-		"intsetACAndGetA(string,int)",
-		"intcallBack()",
-		"voidregisterCallBack(CallBackInterface)",
-		"voidregisterCallBack(CallBackInterface[])",
-		"registercallback",
-		"handleStruct(StructJ)"
-	};
-
-	private TestClassInterface tc;
-	private int port;
-	private CallBackInterface cbstub;
-	private IoTRMICall rmiCall;
-
-
-	/**
-	 * Constructors
-	 */
-	public TestClass_CBSkeleton(TestClass _tc, int _objectId) throws
-		ClassNotFoundException, InstantiationException,
-			IllegalAccessException, IOException {
-
-		tc = _tc;
-		objectId = _objectId;
-		System.out.println("Creating object with object Id: " + objectId);
-	}
-
-
-	// Callback object multiplexing
-	public Object invokeMethod(IoTRMIObject rmiObj) throws IOException {
-
-		String methodSign = rmiObj.getSignature();
-		Object[] paramObj = null;
-		Object retObj = null;
-
-		if (methodSign.equals("voidsetA(int)")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { int.class }, 
-				new Class<?>[] { null }, new Class<?>[] { null });
-			setA((int) paramObj[0]);
-		} else if (methodSign.equals("voidsetB(float)")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { float.class }, 
-				new Class<?>[] { null }, new Class<?>[] { null });
-			setB((float) paramObj[0]);
-		} else if (methodSign.equals("voidsetC(string)")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { String.class }, 
-				new Class<?>[] { null }, new Class<?>[] { null });
-			setC((String) paramObj[0]);
-		} else if (methodSign.equals("sumArray(string[])")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { String[].class }, 
-				new Class<?>[] { null }, new Class<?>[] { null });
-			retObj = sumArray((String[]) paramObj[0]);
-		} else if (methodSign.equals("intsetAndGetA(int)")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { int.class }, 
-				new Class<?>[] { null }, new Class<?>[] { null });
-			retObj = setAndGetA((int) paramObj[0]);
-		} else if (methodSign.equals("intsetACAndGetA(string,int)")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { String.class, int.class }, 
-				new Class<?>[] { null, null }, new Class<?>[] { null, null });
-			retObj = setACAndGetA((String) paramObj[0], (int) paramObj[1]);
-		} else if (methodSign.equals("voidregisterCallBack(CallBackInterface)")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { int.class, String.class, int.class }, 
-				new Class<?>[] { null, null, null }, new Class<?>[] { null, null, null });
-			CallBackInterface cbstub = new CallBack_Stub((int) paramObj[0], (String) paramObj[1], (int) paramObj[2]);
-			registerCallback((CallBackInterface) cbstub);
-		} else if (methodSign.equals("voidregisterCallBack(CallBackInterface[])")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { int.class }, 
-				new Class<?>[] { null }, new Class<?>[] { null });
-			int numStubs = (int) paramObj[0];
-			CallBackInterface[] stub = new CallBackInterface[numStubs];
-			for (int objId = 0; objId < numStubs; objId++) {
-				stub[objId] = new CallBack_CBStub(rmiCall, objIdCnt);
-				objIdCnt++;
-			}
-			registerCallback(stub);
-		} else if (methodSign.equals("intcallBack()")) {
-			retObj = callBack();
-		// Special option to register callback
-		} else if (methodSign.equals("registercallback")) {
-			paramObj = rmiObj.getMethodParams(new Class<?>[] { int.class, String.class, int.class }, 
-				new Class<?>[] { null, null, null }, new Class<?>[] { null, null, null });
-			String[] methodSignatures = CallBack_CBStub.getMethodSignatures();
-			rmiCall = new IoTRMICall((int) paramObj[0], (String) paramObj[1], (int) paramObj[2], methodSignatures);
-			System.out.println("Creating a new IoTRMICall object");
-		} else
-			throw new Error("Signature not recognized!");
-
-		return retObj;
-	}
-
-
-	// Return method signatures
-	public static String[] getMethodSignatures() {
-
-		return methodSignatures;
-	}
-	
-	
-	public void setA(int _int) {
-		
-		tc.setA(_int);
-	}
-	
-	
-	public void setB(float _float) {
-		
-		tc.setB(_float);
-	}
-	
-	
-	public void setC(String _string) {
-		
-		tc.setC(_string);
-	}
-	
-	
-	public String sumArray(String[] newA) {
-		
-		return tc.sumArray(newA);
-	}
-	
-	
-	public int setAndGetA(int newA) {
-		
-		return tc.setAndGetA(newA);
-	}
-	
-	
-	public int setACAndGetA(String newC, int newA) {
-		
-		return tc.setACAndGetA(newC, newA);
-	}
-	
-	
-	public void registerCallback(CallBackInterface _cb) {
-		
-		tc.registerCallback(_cb);
-	}
-
-	public void registerCallback(CallBackInterface[] _cb) {
-		
-		tc.registerCallback(_cb);
-	}
-	
-	public int callBack() {
-		
-		return tc.callBack();
-	}
-
-	public void handleStruct(StructJ[] data) {
-
-		tc.handleStruct(data);
-	}
-
-
-	public static void main(String[] args) throws Exception {
-
-	}
-}
diff --git a/iotjava/iotrmi/Java/sample/TestClass_CBStub.java b/iotjava/iotrmi/Java/sample/TestClass_CBStub.java
deleted file mode 100644
index a3d80fd..0000000
--- a/iotjava/iotrmi/Java/sample/TestClass_CBStub.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package iotrmi.Java.sample;
-
-import java.io.IOException;
-import iotrmi.Java.IoTRMICall;
-import iotruntime.master.CommunicationHandler;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ArrayList;
-
-import iotrmi.Java.IoTRMIObject;
-
-public class TestClass_CBStub implements TestClassInterface {
-
-	/**
-	 * Class Properties
-	 */
-	private IoTRMICall rmiCall;
-	private String address;
-	private int[] ports;
-	private List<CallBackInterface> listCBObj;
-	private IoTRMIObject rmiObj;
-
-	/**
-	 * Class Constants
-	 */
-	private final static int NUM_CB_OBJ = 1;
-	private int objectId = 0;	// Default value is 0
-	private static int objIdCnt = 0; // Counter for callback object Ids
-	private final static String[] methodSignatures = {
-
-		"voidsetA(int)",
-		"voidsetB(float)",
-		"voidsetC(string)",
-		"sumArray(string[])",
-		"intsetAndGetA(int)",
-		"intsetACAndGetA(string,int)",
-		"intcallBack()",
-		"voidregisterCallBack(CallBackInterface)",
-		"voidregisterCallBack(CallBackInterface[])",
-		"registercallback",
-		"handleStruct(StructJ)"
-	};
-
-	/**
-	 * Constructors
-	 */
-	// Assign rmiCall from outside
-	public TestClass_CBStub(IoTRMICall _rmiCall, int _objectId, String _address, int[] _ports) throws IOException {
-
-		address = _address;
-		ports = _ports;
-		objectId = _objectId;
-		rmiCall = _rmiCall;
-		listCBObj = new ArrayList<CallBackInterface>();
-		init_CallBack();
-	}
-
-
-	/**
-	 * Instantiation of callback objects
-	 */
-	public static int numCallbackObjects() {
-
-		return NUM_CB_OBJ;	// Generated by the IoTCompiler
-	}
-
-
-	// Return method signatures
-	public static String[] getMethodSignatures() {
-
-		return methodSignatures;
-	}
-
-
-	// Initialize callback
-	public void init_CallBack() {
-
-		Thread thread = new Thread() {
-			public void run() {
-		        try{
-					String[] methodSignatures = CallBack_CBSkeleton.getMethodSignatures();
-					rmiObj = new IoTRMIObject(ports[0], methodSignatures);
-					Object retObj = null;
-					while (true) {
-						byte[] method = rmiObj.getMethodBytes();
-						int objId = IoTRMIObject.getObjectId(method);
-						//CallBack_CBSkeleton skel = (CallBack_CBSkeleton) listCBObj.get(objId);
-						CallBackInterface cb = listCBObj.get(objId);
-						CallBack_CBSkeleton skel = null;
-						if (cb instanceof CallBack_CBSkeleton) { // in case we have multiple callback classes
-							skel = (CallBack_CBSkeleton) cb;
-						}
-						if (skel != null) {
-							rmiObj.setMethodBytes(method);
-							retObj = skel.invokeMethod(rmiObj);
-						}
-						if (retObj != null) {
-							rmiObj.sendReturnObj(retObj);
-						}
-					}
-				} catch (Exception ex){
-					ex.printStackTrace();
-					throw new Error("Error instantiating class CallBack_Skeleton!");
-		        }
-		    }
-		};
-		thread.start();
-
-		String sign = "registercallback";
-		Class<?> retType = void.class;
-		// port, address, rev, and number of objects
-		Class<?>[] paramCls = new Class<?>[] { int.class, String.class, int.class };
-		Object[] paramObj = new Object[] { ports[0], address, 0 };
-		rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-	}
-
-
-	// Single callback handling
-	public void registerCallback(CallBackInterface _cb) {
-
-		Thread thread = new Thread() {
-			public void run() {
-	            try{
-					CallBack_Skeleton cbskel = new CallBack_Skeleton(_cb, ports[0]);
-					cbskel.waitRequestInvokeMethod();
-				} catch (Exception ex){
-					ex.printStackTrace();
-					throw new Error("Error instantiating class CallBack_Skeleton!");
-	            }
-	        }
-	    };
-		thread.start();
-
-		String sign = "voidregisterCallBack(CallBackInterface)";
-		Class<?> retType = void.class;
-		// port, address, and rev
-		Class<?>[] paramCls = new Class<?>[] { int.class, String.class, int.class };
-		Object[] paramObj = new Object[] { ports[0], address, 0 };
-		rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-	}
-
-
-	public void registerCallback(CallBackInterface[] _cb) {
-
-		try {
-			//for (int objId = 0; objId < _cb.length; objId++) {
-			for (CallBackInterface cb : _cb) {
-				CallBack_CBSkeleton skel = new CallBack_CBSkeleton(cb, objIdCnt++);
-				listCBObj.add(skel);
-			}
-		} catch (Exception ex){
-			ex.printStackTrace();
-			throw new Error("Class not found / instantiation / illegal access / IO error!");
-		}
-
-		String sign = "voidregisterCallBack(CallBackInterface[])";
-		Class<?> retType = void.class;
-		// port, address, rev, and number of objects
-		Class<?>[] paramCls = new Class<?>[] { int.class };
-		Object[] paramObj = new Object[] { _cb.length };
-		rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-	}
-
-
-	public void setA(int _int) {
-
-		String sign = "voidsetA(int)";
-		Class<?> retType = void.class;
-		Class<?>[] paramCls = new Class<?>[] { int.class };
-		Object[] paramObj = new Object[] { _int };
-		rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-	}
-
-
-	public void setB(float _float) {
-
-		String sign = "voidsetB(float)";
-		Class<?> retType = void.class;
-		Class<?>[] paramCls = new Class<?>[] { float.class };
-		Object[] paramObj = new Object[] { _float };
-		rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-	}
-
-
-	public void setC(String _string) {
-
-		String sign = "voidsetC(string)";
-		Class<?> retType = void.class;
-		Class<?>[] paramCls = new Class<?>[] { String.class };
-		Object[] paramObj = new Object[] { _string };
-		rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-	}
-
-
-	// Getters
-	public String sumArray(String[] newA) {
-
-		String sign = "sumArray(string[])";
-		Class<?> retType = String.class;
-		Class<?>[] paramCls = new Class<?>[] { String[].class };
-		Object[] paramObj = new Object[] { newA };
-		Object retObj = rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-		return (String)retObj;
-	}
-
-
-	public int setAndGetA(int newA) {
-		String sign = "intsetAndGetA(int)";
-		Class<?> retType = int.class;
-		Class<?>[] paramCls = new Class<?>[] { int.class };
-		Object[] paramObj = new Object[] { newA };
-		Object retObj = rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-		return (int)retObj;
-	}
-
-
-	public int setACAndGetA(String newC, int newA) {
-
-		String sign = "intsetACAndGetA(string,int)";
-		Class<?> retType = int.class;
-		Class<?>[] paramCls = new Class<?>[] { String.class, int.class };
-		Object[] paramObj = new Object[] { newC, newA };
-		Object retObj = rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-		return (int)retObj;
-	}
-
-
-	public int callBack() {
-
-		String sign = "intcallBack()";
-		Class<?> retType = int.class;
-		Class<?>[] paramCls = new Class<?>[] { };
-		Object[] paramObj = new Object[] { };
-		Object retObj = rmiCall.remoteCall(objectId, sign, retType, null, null, paramCls, paramObj);
-		return (int)retObj;
-
-	}
-
-	public void handleStruct(StructJ[] data) {
-
-	}
-
-
-	public static void main(String[] args) throws Exception {
-
-		CommunicationHandler comHan = new CommunicationHandler(true);
-		int numOfPorts = TestClass_Stub.numCallbackObjects();
-		int[] ports = comHan.getCallbackPorts(numOfPorts);
-
-		int port = 5010;
-		String address = "localhost";
-		int rev = 0;
-
-		System.out.println("Allocated ports: " + Arrays.toString(ports));
-
-		TestClass_Stub tcstub = new TestClass_Stub(port, address, rev, ports);
-		System.out.println("Return value: " + tcstub.setAndGetA(123));
-		System.out.println("Return value: " + tcstub.setACAndGetA("string", 123));
-		System.out.println("Return value: " + tcstub.sumArray(new String[] { "123", "456", "987" }));
-
-		CallBackInterface cb1 = new CallBack(23);
-		CallBackInterface cb2 = new CallBack(33);
-		CallBackInterface cb3 = new CallBack(43);
-		CallBackInterface[] cb = { cb1, cb2, cb3 };
-		tcstub.registerCallback(cb);
-		System.out.println("Return value from callback: " + tcstub.callBack());
-		CallBackInterface cb4 = new CallBack(10);
-		CallBackInterface cb5 = new CallBack(11);
-		CallBackInterface cb6 = new CallBack(12);
-		CallBackInterface[] cbt = { cb4, cb5, cb6 };
-		tcstub.registerCallback(cbt);
-		System.out.println("Return value from callback: " + tcstub.callBack());
-	}
-}
-
-
diff --git a/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java b/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java
index aec1d56..ce2b1b7 100644
--- a/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java
+++ b/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java
@@ -259,7 +259,7 @@ public class TestClass_Skeleton implements TestClassInterface {
 					case 10: ___handleStruct(structsize1); break;
 					case 11: structsize1 = ___structSize(); break;
 					default:
-						throw new Error("Signature not recognized!");
+						throw new Error("Method Id not recognized!");
 				}
 			}
 		}