00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef ARCHON_DISPLAY_CONNECTION_H
00021 #define ARCHON_DISPLAY_CONNECTION_H
00022 
00023 #include <stdexcept>
00024 #include <string>
00025 
00026 #include <archon/util/ref.H>
00027 #include <archon/display/implementation.H>
00028 #include <archon/display/screen.H>
00029 
00030 namespace Archon
00031 {
00032   namespace Display
00033   {
00034     using namespace std;
00035     using namespace Utilities;
00036 
00037     
00038     
00039     
00040     
00041     struct Implementation;
00042     struct Screen;
00043 
00044 
00054     struct Connection: virtual RefObjectBase
00055     {
00061       virtual Ref<Implementation> getImplementation() = 0;
00062 
00070       virtual Ref<Screen> getDefaultScreen() = 0;
00071 
00079       virtual int getNumberOfScreens() = 0;
00080 
00090       virtual Ref<Screen> getScreen(int index) throw(out_of_range) = 0;
00091     };
00092   }
00093 }
00094 
00095 #endif // ARCHON_DISPLAY_CONNECTION_H