X11Connection.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQ_X11_CONNECTION_H
00019 #define EQ_X11_CONNECTION_H
00020
00021 #include <eq/client/windowSystem.h>
00022
00023 #ifdef GLX
00024 # include <eq/client/glXPipe.h>
00025 #endif
00026
00027 #include <eq/net/connection.h>
00028
00029 namespace eq
00030 {
00031 #ifdef GLX
00032
00035 class X11Connection : public net::Connection
00036 {
00037 public:
00038 X11Connection( GLXPipe* pipe_ )
00039 : pipe( pipe_ )
00040 {
00041 EQASSERT( pipe_ );
00042 _display = pipe_->getXDisplay();
00043
00044 EQASSERT( _display );
00045 _state = STATE_CONNECTED;
00046 EQINFO << "New X11 Connection @" << (void*)this << std::endl;
00047 }
00048
00049 virtual ~X11Connection()
00050 { EQINFO << "Delete X11 connection @" << (void*)this << std::endl; }
00051
00052 Display* getDisplay() const { return _display; }
00053 virtual Notifier getNotifier() const
00054 { return ConnectionNumber( _display ); }
00055
00056 GLXPipe* const pipe;
00057
00058 protected:
00059 virtual void readNB( void* buffer, const uint64_t bytes )
00060 { EQDONTCALL; }
00061 virtual int64_t readSync( void* buffer, const uint64_t bytes )
00062 { EQDONTCALL; return -1; }
00063 virtual int64_t write( const void* buffer, const uint64_t bytes )
00064 { EQDONTCALL; return -1; }
00065
00066 private:
00067 Display* _display;
00068 };
00069 #else
00070 class X11Connection : public eq::net::Connection {};
00071 #endif
00072 }
00073
00074 #endif // EQ_X11_CONNECTION_H