Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the BPrivate namespace. Made AppServerLink a cheap object - it will use the applications receiver/sender and not create its own buffers. Fixed broken communication stuff here and there (mostly Font.cpp). Put the newly introduced set|get_system_colors() into the BPrivate namespace - please don't introduce private functions into the public namespace!!! Also fixed their broken communication use, as Darkwyrm obviously forgot about it again: the sequence Flush(); GetNextMessage() without error checking is purely wrong and can make the app hang and/or crash! :-) Other minor cleanup. The input_server used some test mode with the haiku build target which is probably wrong. Hopefully I did not forget anything this time. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,31 +1,12 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (c) 2001-2005, Haiku
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
// copy of this software and associated documentation files (the "Software"),
|
||||
// to deal in the Software without restriction, including without limitation
|
||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
// and/or sell copies of the Software, and to permit persons to whom the
|
||||
// Software is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// File Name: AppServerLink.cpp
|
||||
// Author(s): Erik Jaesler ([email protected])
|
||||
// Description: BAppServerLink provides proxied access to the application's
|
||||
// connection with the app_server. It has BAutolock semantics:
|
||||
// creating one locks the app_server connection; destroying one
|
||||
// unlocks the connection.
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
* Copyright 2001-2005, Haiku.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Erik Jaesler ([email protected])
|
||||
* Axel Dörfler, [email protected]
|
||||
*/
|
||||
|
||||
|
||||
#include <Application.h>
|
||||
#include <Locker.h>
|
||||
@@ -33,37 +14,35 @@
|
||||
#include <AppServerLink.h>
|
||||
|
||||
|
||||
/** AppServerLink provides proxied access to the application's
|
||||
* connection with the app_server.
|
||||
* It has BAutolock semantics:
|
||||
* creating one locks the app_server connection; destroying one
|
||||
* unlocks the connection.
|
||||
*/
|
||||
|
||||
|
||||
BLocker sLock;
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
namespace BPrivate {
|
||||
|
||||
BAppServerLink::BAppServerLink(void)
|
||||
AppServerLink::AppServerLink(void)
|
||||
{
|
||||
sLock.Lock();
|
||||
|
||||
// if there is no be_app, we can't do a whole lot, anyway
|
||||
if (be_app) {
|
||||
SetSendPort(be_app->fServerFrom);
|
||||
SetReplyPort(be_app->fServerTo);
|
||||
}
|
||||
fReceiver = &be_app->fServerLink->Receiver();
|
||||
fSender = &be_app->fServerLink->Sender();
|
||||
} else
|
||||
puts("Noooooooooooooooooooooooooooo");
|
||||
}
|
||||
|
||||
|
||||
BAppServerLink::~BAppServerLink()
|
||||
AppServerLink::~AppServerLink()
|
||||
{
|
||||
sLock.Unlock();
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BAppServerLink::FlushWithReply(int32 *code)
|
||||
{
|
||||
status_t status = Flush(B_INFINITE_TIMEOUT, true);
|
||||
if (status < B_OK)
|
||||
return status;
|
||||
|
||||
return GetNextMessage(*code);
|
||||
}
|
||||
|
||||
} // namespace BPrivate
|
||||
|
||||
Reference in New Issue
Block a user