server/view.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQSERVER_VIEW_H
00019 #define EQSERVER_VIEW_H
00020
00021 #include "paths.h"
00022 #include "viewVisitor.h"
00023 #include "types.h"
00024
00025 #include <eq/client/view.h>
00026 #include <eq/client/viewport.h>
00027
00028 namespace eq
00029 {
00030 namespace server
00031 {
00032 class Config;
00033 class Layout;
00034
00038 class View : public eq::View
00039 {
00040 public:
00041 EQSERVER_EXPORT View();
00042
00044 View( const View& from, Config* config );
00045
00046 virtual ~View();
00047
00056 VisitorResult accept( ViewVisitor& visitor )
00057 { return visitor.visit( this ); }
00058 VisitorResult accept( ConstViewVisitor& visitor ) const
00059 { return visitor.visit( this ); }
00061
00065 void setViewport( const Viewport& viewport );
00066
00068 Config* getConfig();
00069
00071 const Config* getConfig() const;
00072
00074 Layout* getLayout() { return _layout; }
00075
00077 const Layout* getLayout() const { return _layout; }
00078
00080 ViewPath getPath() const;
00081
00087 void addChannel( Channel* channel );
00088
00096 bool removeChannel( Channel* channel );
00097
00099 const ChannelVector& getChannels() const{ return _channels; }
00100
00102 void setObserver( Observer* observer );
00104
00105 protected:
00107 virtual void deserialize( net::DataIStream& is,
00108 const uint64_t dirtyBits );
00109
00110 private:
00111 virtual void getInstanceData( net::DataOStream& os );
00112
00114 Layout* _layout;
00115 friend class Layout;
00116
00118 ChannelVector _channels;
00119
00120 union
00121 {
00122 char dummy[64];
00123 };
00124 };
00125
00126 std::ostream& operator << ( std::ostream& os, const View* view );
00127 }
00128 }
00129 #endif // EQSERVER_VIEW_H