module_net.h

00001 /*
00002         ~~~~~~~~~~~~~~~~
00003         ~ module_net.h ~
00004         ~~~~~~~~~~~~~~~~
00005 
00006 Abstraktes Basisklasse für alle Netzwerkkommunikationsmodule.
00007 
00008 Dieser Quelltext ist ursprünglich Teil des Programmes Eukalyptos, welches zur
00009 Netzwerkfernsteuerung von Lego-RCX-2-Robotern dient und von Lutz Büch, Bastian
00010 Rieck und Carlos Franke im Rahmen eines Praktikums am Interdisziplinären 
00011 Zentrum für Wissenschaftliches Rechnen (IWR) der Universität Heidelberg 
00012 geschaffen wurde.
00013 
00014 */
00015 
00016 #ifndef MODULE_NET_H
00017 #define MODULE_NET_H
00018 
00019 #include "module.h"
00020 
00024 class module_net : public module
00025 {
00026         public:
00027         
00030         virtual int connect( unsigned int port ) = 0;   
00031         
00034         virtual int connect( const char* server, unsigned int port ) = 0;
00035         virtual int disconnect( void ) = 0;
00036 
00037         virtual int send_msg( const char* msg, unsigned int size, int flags = 0 ) = 0;
00038         virtual int recv_msg( char* buf, unsigned int size, int flags = 0 ) = 0;
00039 
00040         virtual int has_msg( void ) = 0;
00041         virtual int get_status( void ) = 0;
00042 
00043         virtual bool has_connection( void ) = 0;
00044 
00045         virtual int mod_load( void ) = 0;
00046         virtual int mod_unload( void ) = 0;
00047 
00051         char* get_name( void )
00052         {
00053                 return( "abstract_module_net_do_not_use" );
00054         };
00055 
00056         protected:
00057 
00058         bool is_server;
00059         bool is_connected;
00060 };
00061 
00062 #endif

Generated on Sun Sep 3 23:47:22 2006 by  doxygen 1.4.7