diff --git a/headers/private/app/AppServerLink.h b/headers/private/app/AppServerLink.h index 8cf3c8b50f..e4c03ea122 100644 --- a/headers/private/app/AppServerLink.h +++ b/headers/private/app/AppServerLink.h @@ -35,7 +35,8 @@ // System Includes ------------------------------------------------------------- // Project Includes ------------------------------------------------------------ -#include +#include +#include // Local Includes -------------------------------------------------------------- @@ -47,11 +48,13 @@ namespace BPrivate { -class BAppServerLink : public PortLink +class BAppServerLink : public BSession { public: BAppServerLink(void); ~BAppServerLink(void); +private: + port_id receiver; }; } // namespace BPrivate diff --git a/src/kits/app/AppServerLink.cpp b/src/kits/app/AppServerLink.cpp index 2d6a837dde..daf8a83594 100644 --- a/src/kits/app/AppServerLink.cpp +++ b/src/kits/app/AppServerLink.cpp @@ -44,16 +44,19 @@ namespace BPrivate { BAppServerLink::BAppServerLink(void) - : PortLink(0L) + : BSession(0L,0L) { be_app->Lock(); - SetPort(be_app->fServerFrom); + receiver=create_port(100,"AppServerLink reply port"); + SetSendPort(be_app->fServerFrom); + SetRecvPort(receiver); } //------------------------------------------------------------------------------ BAppServerLink::~BAppServerLink() { + delete_port(receiver); be_app->Unlock(); } diff --git a/src/kits/app/Cursor.cpp b/src/kits/app/Cursor.cpp index 76446e6403..f26b164f24 100644 --- a/src/kits/app/Cursor.cpp +++ b/src/kits/app/Cursor.cpp @@ -62,12 +62,11 @@ BCursor::BCursor(const void *cursorData) // Send data directly to server BPrivate::BAppServerLink serverlink; - PortMessage pmsg; - serverlink.SetOpCode(AS_CREATE_BCURSOR); - serverlink.Attach((void *)cursorData,68); - serverlink.FlushWithReply(&pmsg); - pmsg.Read(&m_serverToken); + serverlink.WriteInt32(AS_CREATE_BCURSOR); + serverlink.WriteData(cursorData,68); + serverlink.Sync(); + serverlink.ReadInt32(&m_serverToken); } //------------------------------------------------------------------------------ // undefined on BeOS @@ -80,9 +79,9 @@ BCursor::~BCursor() { // Notify server to deallocate server-side objects for this cursor BPrivate::BAppServerLink serverlink; - serverlink.SetOpCode(AS_DELETE_BCURSOR); - serverlink.Attach(m_serverToken); - serverlink.Flush(); + serverlink.WriteInt32(AS_DELETE_BCURSOR); + serverlink.WriteInt32(m_serverToken); + serverlink.Sync(); } //------------------------------------------------------------------------------ // not implemented on BeOS