X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnetvis.h;h=3739d330ec941de08c03c2698a576269bcfa4b7a;hb=42bd2e83d66a98584540dd8cc5b47ee2349fe844;hp=daec1cfade0116cbfa08b5632e253752b81ba8e1;hpb=229e1d6ab66a9e987ffe3cd4a8de7c7f874f6de1;p=netvis.git diff --git a/source/netvis.h b/source/netvis.h index daec1cf..3739d33 100644 --- a/source/netvis.h +++ b/source/netvis.h @@ -1,3 +1,10 @@ +/* $Id$ + +This file is part of NetVis +Copyright @ 2008 Mikko Rasa, Mikkosoft Productions +Distributed unter the GPL +*/ + #ifndef NETVIS_H_ #define NETVIS_H_ @@ -5,43 +12,64 @@ #include #include #include +#include #include #include -#include +#include #include #include #include -class Packet; class Host; +class Packet; +class Port; +class Resolver; class NetVis: public Msp::Application { private: std::string iface; pcap_t *pcap; - std::list packets; - std::map hosts; - Msp::Graphics::Display *dpy; - Msp::Graphics::Window *wnd; - Msp::Graphics::GLContext *glc; - Msp::Time::TimeStamp last_tick; - std::map port_colors; + Resolver *resolver; + unsigned localnet; + unsigned localnet_mask; + + Msp::Graphics::SimpleGLWindow *wnd; Msp::GL::Font *font; - Msp::GL::Texture2D *font_tex; + + unsigned max_hosts; + unsigned max_visible_hosts; + std::map hosts; + std::map disabled_hosts; + std::list packets; + std::map ports; + bool draw_labels; + bool blend; + + Msp::Time::TimeStamp tick_t; + Msp::Time::TimeStamp fps_t; + unsigned frames; + float fps; public: NetVis(int, char **); - int main(); + ~NetVis(); + const Msp::GL::Font &get_font() const { return *font; } const std::map &get_hosts() const { return hosts; } + const std::map &get_ports() const { return ports; } private: virtual void tick(); + void render(); Host &get_host(unsigned); - Msp::GL::Color &get_port_color(unsigned); + Msp::GL::Color generate_color(bool) const; + const Port &get_port(unsigned); + void key_press(unsigned, unsigned, wchar_t); static void capture_handler(unsigned char *, const pcap_pkthdr *, const unsigned char *); + void sighandler(int); + static Application::RegApp reg; };