Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/nto/MsgContainer.hpp

Go to the documentation of this file.
00001 #ifndef __J2K__MsgContainer_HPP__
00002 #define __J2K__MsgContainer_HPP__
00003 
00004 #include <stdio.h>
00005 #include <errno.h>
00006 #include <stdlib.h>
00007 #include <sys/dispatch.h>
00008 
00009 #include <j2k/Fred/Standard.hpp>
00010 #include <j2k/nto/Message.hpp>
00011 #include <j2k/nto/NameSpace.hpp>
00012 
00013 enum MsgContainerType_t
00014 {
00015   server = 0,
00016   client = 1
00017 };
00018 
00019 class MsgContainer
00020 { 
00021 protected:
00022   MsgContainerType_t user;
00023   NameSpace* n;
00024 
00025   int fd;
00026   int connected;
00027 
00028   Message*   message;
00029   Message*   replyMsg;
00030 
00031 public:
00032   MsgContainer( NameSpace* n0, MsgContainerType_t user0 = client );
00033   virtual ~MsgContainer();
00034 
00035   void connect( const char* name = NULL );
00036 
00037   void disconnect();
00038 
00039   int handleReceive( int rcvid, int replyData = 0 );
00040   int receive();
00041   void send( int data );
00042   void reply( int rcvid, int data );
00043   virtual void run() = 0;
00044 
00045   inline void copy( const Message* src );
00046 
00047   // Query recognition:
00048   inline BOOL  isStatus();      
00049   inline BOOL  isGet();         
00050   inline BOOL  isPut();         
00051   inline BOOL  isClear();       
00052   inline BOOL  isQuit();        
00053   inline BOOL  isAddConsumer(); 
00054   inline BOOL  isAddProducer(); 
00055   inline BOOL  isExpired();     
00056   inline BOOL  isEmpty();       
00057   inline BOOL  isFull();        
00058   inline BOOL  isExist();       
00059   inline BOOL  isSuicide();     
00060   inline BOOL  isTimeout();     
00061   inline BOOL  isConsumer();    
00062   inline BOOL  isProducer();    
00063 };
00064 
00065   inline void MsgContainer::copy( const Message* src )
00066   {
00067     message->copy( src );
00068   }
00069 
00070   // Query recognition:
00071   inline BOOL  MsgContainer::isStatus()       { return  message->isStatus();       }
00072   inline BOOL  MsgContainer::isGet()          { return  message->isGet();          }
00073   inline BOOL  MsgContainer::isPut()          { return  message->isPut();          }
00074   inline BOOL  MsgContainer::isClear()        { return  message->isClear();        }
00075   inline BOOL  MsgContainer::isQuit()         { return  message->isQuit();         }
00076   inline BOOL  MsgContainer::isAddConsumer()  { return  message->isAddConsumer();  }
00077   inline BOOL  MsgContainer::isAddProducer()  { return  message->isAddProducer();  }
00078   inline BOOL  MsgContainer::isExpired()      { return  message->isExpired();      }
00079   inline BOOL  MsgContainer::isEmpty()        { return  message->isEmpty();        }
00080   inline BOOL  MsgContainer::isFull()         { return  message->isFull();         }
00081   inline BOOL  MsgContainer::isExist()        { return  message->isExist();        }
00082   inline BOOL  MsgContainer::isSuicide()      { return  message->isSuicide();      }
00083   inline BOOL  MsgContainer::isTimeout()      { return  message->isTimeout();      }
00084   inline BOOL  MsgContainer::isConsumer()     { return  message->isConsumer();     }
00085   inline BOOL  MsgContainer::isProducer()     { return  message->isProducer();     }
00086 
00087 #endif  // MsgContainer.hpp

Generated on Sun Oct 14 18:46:39 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001