From 5d236511e629120ec27b627fce3b374e79d77176 Mon Sep 17 00:00:00 2001 From: "idk%eng.sun.com" Date: Tue, 19 Jun 2001 00:16:08 +0000 Subject: [PATCH] *not part of the build* urpConnect update a=lsv@sparc.spb.su git-svn-id: svn://10.0.0.236/trunk@97376 18797224-902f-48f8-a5cc-f745e15eee43 --- .../urp/src/loader/urpComponentLoader.cpp | 15 +- .../java/xpcom/urp/src/test/Init/initImpl.cpp | 5 + .../java/xpcom/urp/src/test/client/client.cpp | 14 +- mozilla/java/xpcom/urp/src/test/server.cpp | 13 +- mozilla/java/xpcom/urp/src/urpManager.cpp | 158 +++++++++++------- mozilla/java/xpcom/urp/src/urpManager.h | 20 ++- .../java/xpcom/urp/src/urpMarshalToolkit.cpp | 48 ++++-- .../java/xpcom/urp/src/urpMarshalToolkit.h | 5 +- mozilla/java/xpcom/urp/src/urpStub.cpp | 5 +- mozilla/java/xpcom/urp/src/urpStub.h | 3 +- 10 files changed, 181 insertions(+), 105 deletions(-) diff --git a/mozilla/java/xpcom/urp/src/loader/urpComponentLoader.cpp b/mozilla/java/xpcom/urp/src/loader/urpComponentLoader.cpp index 1c21e7e63d1..b7f0f190b52 100644 --- a/mozilla/java/xpcom/urp/src/loader/urpComponentLoader.cpp +++ b/mozilla/java/xpcom/urp/src/loader/urpComponentLoader.cpp @@ -17,7 +17,7 @@ * Rights Reserved. * * Contributor(s): - * Igor Kushnirskiy + * Sergey Lunegov */ /* @@ -85,16 +85,19 @@ urpComponentLoader::urpComponentLoader() return; } _orb->GetORB(&orb); - bcOID oid; +// bcOID oid; + bcOID oid = -860880895; transport = new urpConnector(); - PRStatus status = transport->Open("socket,host=indra,port=20009"); + PRStatus status = transport->Open("socket,host=localhost,port=20009"); if(status != PR_SUCCESS) { printf("Error during opening connection\n"); exit(-1); } - man = new urpManager(PR_TRUE, nsnull, transport->GetConnection()); - stub = new urpStub(man); - oid = orb->RegisterStub(stub); + urpConnection* conn = transport->GetConnection(); + man = new urpManager(PR_TRUE, nsnull, conn); + stub = new urpStub(man, conn); +// oid = orb->RegisterStub(stub); + orb->RegisterStubWithOID(stub, &oid); xpcomStubsAndProxies->GetProxy(oid, NS_GET_IID(nsIComponentManager), orb, &proxy); compM = (nsIComponentManager*)proxy; } diff --git a/mozilla/java/xpcom/urp/src/test/Init/initImpl.cpp b/mozilla/java/xpcom/urp/src/test/Init/initImpl.cpp index 0885387fa23..bcb102568cd 100644 --- a/mozilla/java/xpcom/urp/src/test/Init/initImpl.cpp +++ b/mozilla/java/xpcom/urp/src/test/Init/initImpl.cpp @@ -28,6 +28,7 @@ #include "nsIInterfaceInfoManager.h" #include "nsIComponentManager.h" #include "urpITest.h" +#include "urpTestImpl.h" static char * className = "initImpl"; @@ -103,6 +104,10 @@ initImpl::initImpl() { for (unsigned int i = 0; i < 4; i++) { printf("valueArray[%d]=%s\n",i,(*valueArray2)[i]); } + + urpITest *object = new urpTestImpl(); + object->AddRef(); + serverComponent->Test6(object); { urpITest *p1; serverComponent->Test7(&p1); diff --git a/mozilla/java/xpcom/urp/src/test/client/client.cpp b/mozilla/java/xpcom/urp/src/test/client/client.cpp index bab7b9c2f65..e544be7d6dd 100644 --- a/mozilla/java/xpcom/urp/src/test/client/client.cpp +++ b/mozilla/java/xpcom/urp/src/test/client/client.cpp @@ -87,9 +87,12 @@ nsIInterfaceInfo *interfaceInfo; printf("Error during opening connection\n"); exit(-1); } - urpManager* man = new urpManager(PR_TRUE, nsnull, transport->GetConnection()); - stub = new urpStub(man); - bcOID oid = orb->RegisterStub(stub); + urpConnection* conn = transport->GetConnection(); + urpManager* man = new urpManager(PR_TRUE, nsnull, conn); + stub = new urpStub(man, conn); +bcOID oid = 1221591041; +// bcOID oid = orb->RegisterStub(stub); + orb->RegisterStubWithOID(stub, &oid); printf("---urpTestImpl oid=%ld iid=%s\n",oid, NS_GET_IID(urpITest).ToString()); r = xpcomStubsAndProxies->GetProxy(oid,NS_GET_IID(urpITest),orb,(nsISupports**)&proxy); if (NS_FAILED(r)) { @@ -148,7 +151,7 @@ nsIInterfaceInfo *interfaceInfo; } /*********************************************/ -// proxy->Test6(object); + proxy->Test6(object); /*********************************************/ { urpITest *p1; @@ -167,6 +170,7 @@ nsIInterfaceInfo *interfaceInfo; } -// trans->Close(); + delete conn; + transport->Close(); } diff --git a/mozilla/java/xpcom/urp/src/test/server.cpp b/mozilla/java/xpcom/urp/src/test/server.cpp index 737dfb1ee99..2e030f26cf5 100644 --- a/mozilla/java/xpcom/urp/src/test/server.cpp +++ b/mozilla/java/xpcom/urp/src/test/server.cpp @@ -25,6 +25,7 @@ static NS_DEFINE_CID(kXPCOMStubsAndProxies,BC_XPCOMSTUBSANDPROXIES_CID); static NS_DEFINE_CID(kORBCIID,BC_ORBCOMPONENT_CID); +static NS_DEFINE_CID(compManag, NS_COMPONENTMANAGER_CID); struct localThreadArg { urpManager *mgr; @@ -50,6 +51,8 @@ int main( int argc, char *argv[] ) { nsresult rv = NS_InitXPCOM(NULL, NULL); NS_ASSERTION( NS_SUCCEEDED(rv), "NS_InitXPCOM failed" ); + (void) nsComponentManager::AutoRegister(nsIComponentManager::NS_Startup, nsnull); + NS_WITH_SERVICE(bcIORBComponent, _orb, kORBCIID, &rv); if (NS_FAILED(rv)) { printf("NS_WITH_SERVICE(bcXPC in Marshal failed\n"); @@ -64,17 +67,19 @@ printf("NS_WITH_SERVICE(bcXPC in Marshal failed\n"); bcIORB *orb; _orb->GetORB(&orb); bcIStub *stub = nsnull; - urpITest *object = new urpTestImpl(); - object->AddRef(); + NS_WITH_SERVICE(nsIComponentManager, mComp, compManag, &rv); + if (NS_FAILED(rv)) { + printf("compManager failed\n"); + return -1; + } urpITest *proxy = nsnull; - xpcomStubsAndProxies->GetStub((nsISupports*)object, &stub); + xpcomStubsAndProxies->GetStub((nsISupports*)mComp, &stub); bcOID oid = orb->RegisterStub(stub); urpTransport* trans = new urpAcceptor(); PRStatus status = trans->Open(connectString); if(status == PR_SUCCESS) printf("succes %ld\n",oid); else printf("failed\n"); - object->AddRef(); urpManager* mngr = new urpManager(PR_FALSE, orb, nsnull); rv = NS_OK; while(NS_SUCCEEDED(rv)) { diff --git a/mozilla/java/xpcom/urp/src/urpManager.cpp b/mozilla/java/xpcom/urp/src/urpManager.cpp index bb4c014caef..1542a0c3f90 100644 --- a/mozilla/java/xpcom/urp/src/urpManager.cpp +++ b/mozilla/java/xpcom/urp/src/urpManager.cpp @@ -69,6 +69,29 @@ struct localThreadArg { } }; +struct sendThreadArg { + urpManager* man; + char header; + urpPacket* message; + bcIID iid; + bcOID oid; + bcTID tid; + PRUint16 methodId; + urpConnection* connection; + sendThreadArg(urpManager* m, char header, urpPacket* message, bcIID iid, + bcOID oid, bcTID tid, PRUint16 methodId, + urpConnection* conn) { + this->man = m; + this->header = header; + this->message = message; + this->iid = iid; + this->oid = oid; + this->tid = tid; + this->methodId = methodId; + this->connection = conn; + } +}; + struct monitCall { PRMonitor *mon; bcICall* call; @@ -86,12 +109,23 @@ void thread_start( void *arg ) nsresult rv = manager->ReadMessage( connection, ic ); } +void send_thread_start (void * arg) { + urpManager *manager = ((sendThreadArg *)arg)->man; + char header = ((sendThreadArg *)arg)->header; + urpPacket* mes = ((sendThreadArg *)arg)->message; + bcIID iid = ((sendThreadArg *)arg)->iid; + bcOID oid = ((sendThreadArg *)arg)->oid; + bcTID tid = ((sendThreadArg *)arg)->tid; + PRUint16 methodId = ((sendThreadArg *)arg)->methodId; + urpConnection* conn = ((sendThreadArg *)arg)->connection; + nsresult rv = manager->ReadLongRequest(header, mes, iid, oid, + tid, methodId, conn); +} + urpManager::urpManager(PRBool IsClient, bcIORB *orb, urpConnection* conn) { broker = orb; monitTable = new nsHashtable(20); if(IsClient) { - connTable = nsnull; - connection = conn; localThreadArg *arg = new localThreadArg( this, conn, PR_TRUE ); PRThread *thr = PR_CreateThread( PR_USER_THREAD, thread_start, @@ -104,16 +138,13 @@ urpManager::urpManager(PRBool IsClient, bcIORB *orb, urpConnection* conn) { printf("Error couldn't run listener\n"); exit(-1); } - } else { - connection = nsnull; - connTable = new nsHashtable(20); } } urpManager::~urpManager() { - if(connTable) - delete connTable; + if(monitTable) + delete monitTable; } @@ -122,7 +153,8 @@ void urpManager::SendUrpRequest(bcOID oid, bcIID iid, PRUint16 methodIndex, nsIInterfaceInfo* interfaceInfo, bcICall *call, - PRUint32 paramCount, const nsXPTMethodInfo* info) { + PRUint32 paramCount, const nsXPTMethodInfo* info, + urpConnection* connection) { printf("this is method sendUrpRequest and mid is %x\n",methodIndex); long size = 0; long messagesCount = 0; @@ -169,18 +201,12 @@ void urpManager::SendUrpRequest(bcOID oid, bcIID iid, mt->WriteType(iid, message); mt->WriteOid(oid, message); bcTID thrID = (bcTID)PR_GetCurrentThread(); -printf("OID is written %ld\n", thrID); +printf("OID is written %ld\n", oid); mt->WriteThreadID(thrID, message); broker = call->GetORB(); mt->WriteParams(call, paramCount, info, interfaceInfo, message, methodIndex); delete mt; - if(connTable) { - bcTID thrID = (bcTID)PR_GetCurrentThread(); - threadHashKey thrHK(thrID); - urpConnection* con = connTable->Get(&thrHK); - con->Write(message); - } else - connection->Write(message); + connection->Write(message); delete message; } @@ -192,11 +218,12 @@ nsresult urpManager::ReadReply(urpPacket* message, char header, bcICall* call, PRUint32 paramCount, const nsXPTMethodInfo *info, - nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex) { + nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex, + urpConnection* conn) { nsresult rv = NS_OK; printf("this is method readReply\n"); urpMarshalToolkit* mt = new urpMarshalToolkit(PR_TRUE); - rv = mt->ReadParams(paramCount, info, message, interfaceInfo, methodIndex, call, broker, this); + rv = mt->ReadParams(paramCount, info, message, interfaceInfo, methodIndex, call, broker, this, conn); delete mt; return rv; } @@ -204,22 +231,45 @@ urpManager::ReadReply(urpPacket* message, char header, nsresult urpManager::ReadMessage(urpConnection* conn, PRBool isClient) { nsresult rv = NS_OK; - if(!isClient) { - bcTID thrID = (bcTID)PR_GetCurrentThread(); - threadHashKey thrHK(thrID); - connTable->Put(&thrHK, conn); - } + PRBool inserted = PR_FALSE; + bcTID tid; while(conn->GetStatus() == urpSuccess) { urpPacket* message = conn->Read(); char header = message->ReadByte(); - bcTID tid; if((header & BIG_HEADER) != 0) { // full header? - if((header & REQUEST) != 0) // a request ? - rv = ReadLongRequest(header, message); - else { // a reply + if((header & REQUEST) != 0) { // a request ? + bcIID iid; + bcOID oid; + PRUint16 methodId; + if((header & LONGMETHODID) != 0) // usigned short ? + methodId = message->ReadShort(); + else + methodId = message->ReadByte(); + + urpMarshalToolkit* mt = new urpMarshalToolkit(PR_FALSE); + if((header & NEWTYPE) != 0) + iid = mt->ReadType(message); + + if((header & NEWOID) != 0) // new oid? + oid = mt->ReadOid(message); + + if((header & NEWTID) != 0) // new thread id ? + tid = mt->ReadThreadID(message); + + delete mt; + + sendThreadArg *arg = new sendThreadArg( this, header, + message, iid, oid, tid, methodId, conn); + PRThread *thr = PR_CreateThread( PR_USER_THREAD, + send_thread_start, + arg, + PR_PRIORITY_NORMAL, + PR_GLOBAL_THREAD, + PR_UNJOINABLE_THREAD, + 0); + } else { // a reply bcIID iid; bcOID oid; bcMID mid; - bcTID tid; urpMarshalToolkit* mt = new urpMarshalToolkit(PR_TRUE); if((header & NEWTID) != 0) { // new thread id ? printf("new threadID\n"); @@ -248,20 +298,17 @@ urpManager::ReadMessage(urpConnection* conn, PRBool isClient) { nsXPTMethodInfo* info; interfaceInfo->GetMethodInfo(mid, (const nsXPTMethodInfo **)&info); PRUint32 paramCount = info->GetParamCount(); - ReadReply(message, header, mc->call, paramCount, info, interfaceInfo, mid); + ReadReply(message, header, mc->call, paramCount, + info, interfaceInfo, mid, conn); PR_EnterMonitor(mc->mon); PR_Notify(mc->mon); PR_ExitMonitor(mc->mon); } } - else // only a short request header - rv = ReadShortRequest(header, message); - delete message; - } - if(!isClient) { - bcTID thrID = (bcTID)PR_GetCurrentThread(); - threadHashKey thrHK(thrID); - connTable->Remove(&thrHK); + else { // only a short request header +// rv = ReadShortRequest(header, message); + break; + } } return rv; } @@ -277,7 +324,8 @@ urpManager::ReadShortRequest(char header, urpPacket* message) { nsresult urpManager::SendReply(bcTID tid, bcICall* call, PRUint32 paramCount, const nsXPTMethodInfo* info, - nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex) { + nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex, + urpConnection* connection) { nsresult rv = NS_OK; char header = (char)BIG_HEADER; header |= NEWTID; @@ -289,39 +337,19 @@ urpManager::SendReply(bcTID tid, bcICall* call, PRUint32 paramCount, methodIndex); delete mt; if(NS_FAILED(rv)) return rv; - if(connTable) { - bcTID thrID = (bcTID)PR_GetCurrentThread(); - threadHashKey thrHK(thrID); - urpConnection* con = (urpConnection*)connTable->Get(&thrHK); - con->Write(message); - } else - connection->Write(message); + connection->Write(message); delete message; return rv; } nsresult -urpManager::ReadLongRequest(char header, urpPacket* message) { - bcIID iid; - bcOID oid; - bcTID tid; - PRUint16 methodId; +urpManager::ReadLongRequest(char header, urpPacket* message, + bcIID iid, bcOID oid, bcTID tid, + PRUint16 methodId, urpConnection* conn) { nsresult rv = NS_OK; - if((header & LONGMETHODID) != 0) // usigned short ? - methodId = message->ReadShort(); - else - methodId = message->ReadByte(); urpMarshalToolkit* mt = new urpMarshalToolkit(PR_FALSE); - if((header & NEWTYPE) != 0) - iid = mt->ReadType(message); - - if((header & NEWOID) != 0) // new oid? - oid = mt->ReadOid(message); - - if((header & NEWTID) != 0) // new thread id ? - tid = mt->ReadThreadID(message); printf("method readLongRequest: tid %ld %ld\n",tid,oid); char ignore_cache = ((header & IGNORECACHE) != 0); // do not use cache for this request? @@ -356,11 +384,13 @@ char* name; interfaceInfo->GetMethodInfo(methodId,(const nsXPTMethodInfo **)&info); PRUint32 paramCount = info->GetParamCount(); bcICall *call = broker->CreateCall(&iid, &oid, methodId); - mt->ReadParams(paramCount, info, message, interfaceInfo, methodId, call, broker, this); + mt->ReadParams(paramCount, info, message, interfaceInfo, methodId, call, broker, this, conn); delete mt; + delete message; //nb return value; excepion handling broker->SendReceive(call); - rv = SendReply(tid, call, paramCount, info, interfaceInfo, methodId); + rv = SendReply(tid, call, paramCount, info, interfaceInfo, + methodId, conn); return rv; } diff --git a/mozilla/java/xpcom/urp/src/urpManager.h b/mozilla/java/xpcom/urp/src/urpManager.h index f2ba64f7e57..8809f2572b3 100644 --- a/mozilla/java/xpcom/urp/src/urpManager.h +++ b/mozilla/java/xpcom/urp/src/urpManager.h @@ -30,6 +30,8 @@ class urpManager { +friend void send_thread_start (void * arg); + public: urpManager(PRBool IsClient, bcIORB *orb, urpConnection* connection); ~urpManager(); @@ -37,25 +39,31 @@ public: PRUint16 methodIndex, nsIInterfaceInfo* interfaceInfo, bcICall *call, - PRUint32 paramCount, const nsXPTMethodInfo* info); + PRUint32 paramCount, const nsXPTMethodInfo* info, + urpConnection* conn); nsresult ReadMessage(urpConnection* conn, PRBool ic); nsresult SetCall(bcICall* call, PRMonitor *m); nsresult RemoveCall(); private: - nsHashtable* connTable; nsHashtable* monitTable; bcIORB *broker; - urpConnection* connection; /* for ReadReply */ nsIInterfaceInfo *interfaceInfo; void TransformMethodIDAndIID(); nsresult ReadReply(urpPacket* message, char header, - bcICall* call, PRUint32 paramCount, const nsXPTMethodInfo *info, nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex); - nsresult ReadLongRequest(char header, urpPacket* message); + bcICall* call, PRUint32 paramCount, + const nsXPTMethodInfo *info, + nsIInterfaceInfo *interfaceInfo, + PRUint16 methodIndex, urpConnection* conn); + nsresult ReadLongRequest(char header, urpPacket* message, + bcIID iid, bcOID oid, bcTID tid, + PRUint16 methodId, urpConnection* conn); nsresult ReadShortRequest(char header, urpPacket* message); nsresult SendReply(bcTID tid, bcICall* call, PRUint32 paramCount, const nsXPTMethodInfo* info, - nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex); + nsIInterfaceInfo *interfaceInfo, + PRUint16 methodIndex, urpConnection* conn); }; + #endif diff --git a/mozilla/java/xpcom/urp/src/urpMarshalToolkit.cpp b/mozilla/java/xpcom/urp/src/urpMarshalToolkit.cpp index 6a7d1041ddd..a5359393bec 100644 --- a/mozilla/java/xpcom/urp/src/urpMarshalToolkit.cpp +++ b/mozilla/java/xpcom/urp/src/urpMarshalToolkit.cpp @@ -134,17 +134,19 @@ urpMarshalToolkit::WriteElement(bcIUnMarshaler *um, nsXPTParamInfo * param, uint } data = *(char **)data; size_t length = 0; - if (type == nsXPTType::T_WCHAR_STR) { - length = nsCRT::strlen((const PRUnichar*)data); - length *= 2; - length +=2; - for (int i = 0; i < length && type == nsXPTType::T_WCHAR_STR; i++) { + if(data != nsnull) { + if (type == nsXPTType::T_WCHAR_STR) { + length = nsCRT::strlen((const PRUnichar*)data); + length *= 2; + length +=2; + for (int i = 0; i < length && type == nsXPTType::T_WCHAR_STR; i++) { char c = ((char*)data)[i]; - } - } else { - length = nsCRT::strlen((const char*)data); - length+=1; - } + } + } else { + length = nsCRT::strlen((const char*)data); + length+=1; + } + } message->WriteString((char*)data,length); break; } @@ -216,6 +218,14 @@ urpMarshalToolkit::WriteParams(bcICall *call, PRUint32 paramCount, const nsXPTMe nsresult rv = NS_OK; bcIAllocator * allocator = new urpAllocator(nsAllocator::GetGlobalAllocator()); bcIUnMarshaler *um = call->GetUnMarshaler(); + if(!isClient) { + nsresult result; + um->ReadSimple(&result, bc_T_U32); + if(!NS_SUCCEEDED(result)) { + printf("Returned result is error on server side\n"); + } + message->WriteInt(result); + } for(i=0;iGetParam(i); @@ -242,7 +252,8 @@ nsresult urpMarshalToolkit::ReadElement(nsXPTParamInfo * param, uint8 type, nsIInterfaceInfo* interfaceInfo, urpPacket* message, PRUint16 methodIndex, bcIAllocator* allocator, - bcIMarshaler* m, bcIORB *broker, urpManager* man) { + bcIMarshaler* m, bcIORB *broker, urpManager* man, + urpConnection* conn) { void* data = allocator->Alloc(sizeof(void*)); nsresult r = NS_OK; switch(type) { @@ -321,7 +332,7 @@ urpMarshalToolkit::ReadElement(nsXPTParamInfo * param, uint8 type, nsIID iid = ReadType(message); nsISupports *proxy = NULL; if (oid != 0) { - urpStub* stub = new urpStub(man); + urpStub* stub = new urpStub(man, conn); broker->RegisterStubWithOID(stub, &oid); } m->WriteSimple(&oid, XPTType2bcXPType(type)); @@ -345,7 +356,7 @@ urpMarshalToolkit::ReadElement(nsXPTParamInfo * param, uint8 type, m->WriteSimple(&arraySize,bc_T_U32); char *current = *(char**)data; for (int i = 0; i < arraySize; i++) { - ReadElement(param,datumType.TagPart(),interfaceInfo, message, methodIndex, allocator, m, broker, man); + ReadElement(param,datumType.TagPart(),interfaceInfo, message, methodIndex, allocator, m, broker, man, conn); } } else { size_t length = 0; @@ -368,11 +379,18 @@ urpMarshalToolkit::ReadElement(nsXPTParamInfo * param, uint8 type, } nsresult -urpMarshalToolkit::ReadParams(PRUint32 paramCount, const nsXPTMethodInfo *info, urpPacket* message, nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex, bcICall* call, bcIORB *orb, urpManager* man) { +urpMarshalToolkit::ReadParams(PRUint32 paramCount, const nsXPTMethodInfo *info, urpPacket* message, nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex, bcICall* call, bcIORB *orb, urpManager* man, urpConnection* conn) { bcIAllocator * allocator = new urpAllocator(nsAllocator::GetGlobalAllocator()); bcIMarshaler* m = call->GetMarshaler(); int i; nsresult rv = NS_OK; + if(isClient) { + nsresult result = message->ReadInt(); + m->WriteSimple(&result, bc_T_U32); + if (!NS_SUCCEEDED(result)) { + printf("Returned result is error on client side\n"); + } + } for(i=0;iGetParam(i); @@ -384,7 +402,7 @@ urpMarshalToolkit::ReadParams(PRUint32 paramCount, const nsXPTMethodInfo *info, } rv = ReadElement(¶m, param.GetType().TagPart(), interfaceInfo, - message, methodIndex, allocator, m, orb, man); + message, methodIndex, allocator, m, orb, man, conn); if(NS_FAILED(rv)) { delete allocator; delete m; diff --git a/mozilla/java/xpcom/urp/src/urpMarshalToolkit.h b/mozilla/java/xpcom/urp/src/urpMarshalToolkit.h index 72356c3df27..a0b4789460e 100644 --- a/mozilla/java/xpcom/urp/src/urpMarshalToolkit.h +++ b/mozilla/java/xpcom/urp/src/urpMarshalToolkit.h @@ -35,7 +35,7 @@ public: urpMarshalToolkit(PRBool isClient); ~urpMarshalToolkit(); - nsresult ReadParams(PRUint32 paramCount, const nsXPTMethodInfo *info, urpPacket* message, nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex, bcICall* call, bcIORB *orb, urpManager* man); + nsresult ReadParams(PRUint32 paramCount, const nsXPTMethodInfo *info, urpPacket* message, nsIInterfaceInfo *interfaceInfo, PRUint16 methodIndex, bcICall* call, bcIORB *orb, urpManager* man, urpConnection* conn); nsresult WriteParams(bcICall *call, PRUint32 paramCount, const nsXPTMethodInfo * info, nsIInterfaceInfo* interfaceInfo, urpPacket* message, PRUint16 methodIndex); void WriteType(bcIID iid, urpPacket* message); @@ -55,7 +55,8 @@ private: nsresult ReadElement(nsXPTParamInfo * param, uint8 type, nsIInterfaceInfo* interfaceInfo, urpPacket* message, PRUint16 methodIndex, bcIAllocator * allocator, - bcIMarshaler* m, bcIORB *orb, urpManager* man); + bcIMarshaler* m, bcIORB *orb, urpManager* man, + urpConnection* conn); bcXPType XPTType2bcXPType(uint8 type); }; diff --git a/mozilla/java/xpcom/urp/src/urpStub.cpp b/mozilla/java/xpcom/urp/src/urpStub.cpp index 3063faf60dd..6b3ff5c4baf 100644 --- a/mozilla/java/xpcom/urp/src/urpStub.cpp +++ b/mozilla/java/xpcom/urp/src/urpStub.cpp @@ -30,8 +30,9 @@ #include "urpManager.h" -urpStub::urpStub(urpManager* man) { +urpStub::urpStub(urpManager* man, urpConnection* conn) { manager = man; + connection = conn; } @@ -72,7 +73,7 @@ printf("ThreadID is written %d %p %p %p %p\n",paramCount, call, mon, manager, th exit(-1); } manager->SendUrpRequest(oid, iid, mid, interfaceInfo, call, paramCount, - info); + info, connection); if(NS_FAILED(PR_Wait(mon, PR_INTERVAL_NO_TIMEOUT))) { printf("Can't wait on cond var\n"); exit(-1); diff --git a/mozilla/java/xpcom/urp/src/urpStub.h b/mozilla/java/xpcom/urp/src/urpStub.h index bb89de4b757..2a1ec0cf257 100644 --- a/mozilla/java/xpcom/urp/src/urpStub.h +++ b/mozilla/java/xpcom/urp/src/urpStub.h @@ -30,11 +30,12 @@ class urpStub : public bcIStub { public: - urpStub(urpManager* man); + urpStub(urpManager* man, urpConnection* con); virtual ~urpStub(); virtual void Dispatch(bcICall *call) ; private: urpManager* manager; + urpConnection* connection; }; #endif