Add GNU LGPL headers to all .c .C and .h files
[oweals/cde.git] / cde / programs / dtmail / libDtMail / Common / DtMailXtProc.C
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /*
24  *+SNOTICE
25  *
26  *
27  *      $XConsortium: DtMailXtProc.C /main/4 1996/04/21 19:47:56 drk $
28  *
29  *      RESTRICTED CONFIDENTIAL INFORMATION:
30  *      
31  *      The information in this document is subject to special
32  *      restrictions in a confidential disclosure agreement bertween
33  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
34  *      document outside HP, IBM, Sun, USL, SCO, or Univel wihtout
35  *      Sun's specific written approval.  This documment and all copies
36  *      and derivative works thereof must be returned or destroyed at
37  *      Sun's request.
38  *
39  *      Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
40  *
41  *+ENOTICE
42  */
43
44 #include <stdio.h>
45 #include <unistd.h>
46
47 #include <DtMail/DtMail.hh>
48 #include <DtMail/DtMailXtProc.h>
49
50 extern "C" void
51 DtMailXtInputProc(XtPointer client_data,
52                   int * file_desc,
53                   XtInputId *)
54 {
55     DtMail::Session *session = (DtMail::Session *)client_data;
56
57     // We read one event packet. The call back caller is then
58     // invoked to fire the appropriate callback.
59     //
60     DtMailEventPacket   packet;
61
62     read(*file_desc, &packet, sizeof(DtMailEventPacket));
63
64     if (session->validObjectKey(packet.key) == DTM_FALSE) {
65         return;
66     }
67
68     switch(packet.target) {
69       case DTM_TARGET_MAILBOX:
70       {
71         DtMail::MailBox * self = (DtMail::MailBox *)packet.target_object;
72         
73         self->callCallback((DtMailCallbackOp)((long)packet.operation), 
74                            packet.argument);
75         break;
76       }
77
78       case DTM_TARGET_TRANSPORT:
79       {
80         DtMail::Transport * self = (DtMail::Transport *)packet.target_object;
81         self->callCallback((DtMailOperationId)packet.operation,
82                            packet.argument);
83         break;
84       }
85
86       default:
87         break;
88     }
89
90     return;
91 }
92
93 void
94 DtMailProcessClientEvents(void)
95 {
96 #if 0
97 //    if (DtMailDamageContext) {
98 //      XtInputMask events = XtAppPending(DtMailDamageContext);
99 //      if (events & (XtIMXEvent | XtIMAlternateInput)) {
100 //          XtAppProcessEvent(DtMailDamageContext, XtIMXEvent | XtIMAlternateInput);
101 //      }
102 //    }
103 #endif
104 }