Clean up.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1203 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Pfeiffer
2002-09-26 23:46:13 +00:00
parent 57e88ee89b
commit c615771892
4 changed files with 35 additions and 15 deletions
+15
View File
@@ -129,9 +129,24 @@ void PrintServerApp::AsyncHandleMessage(BMessage* msg)
}
}
#include <be/app/Roster.h>
void PrintSender(BMessage* msg) {
BMessenger msgr = msg->ReturnAddress();
// if (msgr.InitCheck() == B_OK) {
team_id team = msgr.Team();
app_info info;
if (be_roster->GetRunningAppInfo(team, &info) == B_OK) {
fprintf(stderr, "PrintSender signature = %s\n", info.signature);
} else
fprintf(stderr, "PrintSender could not get app_info\n");
// } else
// fprintf(stderr, "PrintSender invalid BMessenger\n");
}
void PrintServerApp::Handle_BeOSR5_Message(BMessage* msg)
{
PrintSender(msg);
switch(msg->what) {
// Get currently selected printer
case PSRV_GET_ACTIVE_PRINTER: {
@@ -108,8 +108,8 @@ PrintServerApp::HandleScriptingCommand(BMessage* msg)
Printer* printer = GetPrinterFromSpecifier(&spec);
status_t rc = B_BAD_VALUE;
if (printer != NULL && (rc=printer->Remove()) == B_OK) {
printer->Release();
if (printer != NULL) {
rc=printer->Remove();
}
BMessage reply(B_REPLY);
+14 -10
View File
@@ -153,9 +153,8 @@ bool PrintServerApp::QuitRequested()
// Release all printers
Printer* printer;
while ((printer = Printer::At(0)) != NULL) {
Printer::Remove(printer);
printer->AbortPrintThread();
printer->Release();
UnregisterPrinter(printer);
}
// Wait for printers
@@ -180,18 +179,24 @@ void PrintServerApp::RegisterPrinter(BDirectory* printer) {
BAutolock lock(gLock);
if (lock.IsLocked()) {
Resource* r = fResourceManager.Allocate(transport.String(), address.String(), connection.String());
new Printer(printer, r);
Printer* p = new Printer(printer, r);
AddHandler(p);
if (fNumberOfPrinters == 0) acquire_sem(fNoPrinterAvailable);
fNumberOfPrinters ++;
}
}
void PrintServerApp::UnregisterPrinter(Printer* printer) {
RemoveHandler(printer);
Printer::Remove(printer);
printer->Release();
}
void PrintServerApp::NotifyPrinterDeletion(Resource* res) {
void PrintServerApp::NotifyPrinterDeletion(Printer* printer) {
BAutolock lock(gLock);
if (lock.IsLocked()) {
fNumberOfPrinters --;
fResourceManager.Free(res);
fResourceManager.Free(printer->GetResource());
if (fNumberOfPrinters == 0) release_sem(fNoPrinterAvailable);
}
}
@@ -206,8 +211,7 @@ void PrintServerApp::HandleRemovedPrinter(BMessage* msg) {
msg->FindInt64("node", &node) == B_OK &&
(printer = Printer::Find(device, node)) != NULL) {
if (printer == fDefaultPrinter) fDefaultPrinter = NULL;
Printer::Remove(printer);
printer->Release();
UnregisterPrinter(printer);
}
}
@@ -281,9 +285,9 @@ status_t PrintServerApp::SetupPrinterList()
void
PrintServerApp::MessageReceived(BMessage* msg)
{
fprintf(stdout, "PrintServerApp\n");
msg->PrintToStream();
fflush(stdout);
// fprintf(stdout, "PrintServerApp\n");
// msg->PrintToStream(); printf("\n\n");
// fflush(stdout);
switch(msg->what) {
case PSRV_GET_ACTIVE_PRINTER:
case PSRV_MAKE_PRINTER_ACTIVE_QUIETLY:
+4 -3
View File
@@ -64,7 +64,7 @@ public:
bool QuitRequested();
void MessageReceived(BMessage* msg);
void NotifyPrinterDeletion(Resource* res);
void NotifyPrinterDeletion(Printer* printer);
// Scripting support, see PrintServerApp.Scripting.cpp
status_t GetSupportedSuites(BMessage* msg);
@@ -83,6 +83,7 @@ private:
const char* transportPath);
void RegisterPrinter(BDirectory* node);
void UnregisterPrinter(Printer* printer);
void HandleRemovedPrinter(BMessage* msg);
status_t StoreDefaultPrinter();
@@ -95,8 +96,8 @@ private:
Printer* fDefaultPrinter;
BBitmap fSelectedIconMini;
BBitmap fSelectedIconLarge;
int fNumberOfPrinters;
sem_id fNoPrinterAvailable;
int fNumberOfPrinters; // number of existing Printer objects
sem_id fNoPrinterAvailable; // can be acquired if number of printers == 0
// "Classic" BeOS R5 support, see PrintServerApp.R5.cpp
static status_t async_thread(void* data);