~ubuntu-branches/ubuntu/quantal/zeroc-ice/quantal

« back to all changes in this revision

Viewing changes to cpp/include/Ice/Application.h

  • Committer: Bazaar Package Importer
  • Author(s): Cleto Martin Angelina
  • Date: 2011-04-25 18:44:24 UTC
  • mfrom: (6.1.14 sid)
  • Revision ID: james.westby@ubuntu.com-20110425184424-sep9i9euu434vq4c
Tags: 3.4.1-7
* Bug fix: "libdb5.1-java.jar was renamed to db.jar", thanks to Ondřej
  Surý (Closes: #623555).
* Bug fix: "causes noise in php5", thanks to Jayen Ashar (Closes:
  #623533).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
// **********************************************************************
2
2
//
3
 
// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved.
 
3
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
4
4
//
5
5
// This copy of Ice is licensed to you under the terms described in the
6
6
// ICE_LICENSE file included in this distribution.
12
12
 
13
13
#include <Ice/Ice.h>
14
14
 
15
 
namespace Ice
16
 
{
17
 
 
18
 
enum SignalPolicy { HandleSignals, NoSignalHandling } ;
 
15
#include <IceUtil/Mutex.h>
 
16
 
 
17
 
 
18
namespace Ice
 
19
{
 
20
    enum SignalPolicy { HandleSignals, NoSignalHandling } ;
 
21
    class Application;
 
22
}
 
23
 
 
24
namespace IceInternal
 
25
{
 
26
    
 
27
namespace Application
 
28
{
 
29
    extern ICE_API IceUtil::Mutex* mutex;
 
30
    extern ICE_API IceUtil::Cond* _condVar;
 
31
 
 
32
    //
 
33
    // Variables than can change while run() and communicator->destroy() are running!
 
34
    //
 
35
    extern ICE_API bool _callbackInProgress;
 
36
    extern ICE_API bool _destroyed;
 
37
    extern ICE_API bool _interrupted;
 
38
    
 
39
    //
 
40
    // Variables that are immutable during run() and until communicator->destroy() has returned;
 
41
    // before and after run(), and once communicator->destroy() has returned, we assume that 
 
42
    // only the main thread and CtrlCHandler threads are running.
 
43
    //
 
44
    extern ICE_API std::string _appName;
 
45
    extern ICE_API Ice::CommunicatorPtr _communicator;
 
46
    extern ICE_API Ice::SignalPolicy _signalPolicy;
 
47
    extern ICE_API Ice::Application* _application;
 
48
}
 
49
 
 
50
}
 
51
 
 
52
namespace Ice
 
53
{
19
54
 
20
55
class ICE_API Application : private IceUtil::noncopyable
21
56
{
32
67
    // are printed if exceptions propagate to main(), and the
33
68
    // Communicator is always destroyed, regardless of exceptions.
34
69
    //
35
 
    int main(int, char*[]);
 
70
    int main(int, char*[], const Ice::InitializationData& = Ice::InitializationData());
36
71
    int main(int, char*[], const char*);
37
 
    int main(int, char*[], const Ice::InitializationData&);
38
 
    int main(const StringSeq&);
 
72
 
 
73
    int main(int, char* const [], const Ice::InitializationData& = Ice::InitializationData());
 
74
    int main(int, char* const [], const char*);
 
75
 
 
76
#ifdef _WIN32
 
77
 
 
78
    int main(int, wchar_t*[], const Ice::InitializationData& = Ice::InitializationData());
 
79
    int main(int, wchar_t*[], const char*);
 
80
 
 
81
#endif
 
82
 
 
83
    int main(const StringSeq&, const Ice::InitializationData& = Ice::InitializationData());
39
84
    int main(const StringSeq&, const char*);
40
 
    int main(const StringSeq&, const Ice::InitializationData&);
41
85
 
42
86
    virtual int run(int, char*[]) = 0;
43
87
 
96
140
    //
97
141
    static bool interrupted();
98
142
 
99
 
private:
 
143
protected:
100
144
 
101
 
    int mainInternal(int, char*[], const Ice::InitializationData&);
 
145
    virtual int doMain(int, char*[], const Ice::InitializationData&);
102
146
 
103
147
#if defined(__SUNPRO_CC)
104
148
//