casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DisplayState.h
Go to the documentation of this file.
1 //# State.h: global display state
2 //# Copyright (C) 2009
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be addressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 
27 #ifndef CASA_DISPLAY_STATE_H_
28 #define CASA_DISPLAY_STATE_H_
29 
30 namespace casa { //# NAMESPACE CASA - BEGIN
31 
32  namespace display { //# NAMESPACE DISPLAY - BEGIN
33  class state {
34  friend class stateCleanup;
35  public:
36 
37  static state &instance( ) {
38  return initialized == false ? startup( ) : *singleton;
39  }
40 
41  // allows classes (primarily in the redisplay chain) to tell if we
42  // are currently outputing to a file...
43  bool fileOutputMode( );
44  // begin file output
45  void beginFileOutputMode( );
46  // end file output
47  void endFileOutputMode( );
48 
49  private:
50 
51  static state *singleton;
52 
54  ~state( ) { }
55 
56  static state &startup( );
57  static void shutdown( );
58 
60  static bool initialized;
61 
62  };
63 
64  static class stateCleanup {
65  public:
67  creation_count += 1;
68  }
70  if ( --creation_count == 0 ) {
71  state::shutdown( );
72  }
73  }
74  private:
75  static unsigned int creation_count;
77  }
78 
79 }
80 
81 #endif
static unsigned int creation_count
Definition: DisplayState.h:75
static state * singleton
Definition: DisplayState.h:51
static state & instance()
Definition: DisplayState.h:37
static bool initialized
Definition: DisplayState.h:60
static state & startup()
void beginFileOutputMode()
begin file output
static void shutdown()
static class casa::display::stateCleanup local_state_cleanup_object
bool fileOutputMode()
allows classes (primarily in the redisplay chain) to tell if we are currently outputing to a file...
void endFileOutputMode()
end file output