Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

nmlqr.hh

Go to the documentation of this file.
00001 
00002 
00003 #ifndef NMLQR_HH
00004 #define NMLQR_HH
00005 
00006 #include "rcs_defs.hh"
00007 #include "nml.hh"
00008 #include "nmlmsg.hh"
00009 
00010 class NML_QUERY_MSG:public NMLmsg
00011 {
00012 public:
00013   NML_QUERY_MSG (NMLTYPE t, long s):NMLmsg (t, s)
00014   {
00015   };
00016   void update (CMS *);
00017   int subdiv_for_reply;
00018 };
00019 
00020 class RCS_EXPORT NML_QUERY_CHANNEL:public NML
00021 {
00022 public:
00023   NML_QUERY_CHANNEL (NML_FORMAT_PTR, char *, char *, char *,
00024                      int set_to_server = 0);
00025    ~NML_QUERY_CHANNEL ();
00026   NML_QUERY_MSG *get_address ()
00027   {
00028     return ((NML_QUERY_MSG *) NML::get_address ());
00029   };
00030 };
00031 
00032 class RCS_EXPORT NML_ID_CHANNEL:public NML
00033 {
00034 public:
00035   NML_ID_CHANNEL (NML_FORMAT_PTR, char *, char *, char *,
00036                   int set_to_server = 0);
00037   ~NML_ID_CHANNEL ();
00038 };
00039 
00040 
00041 #define NML_NO_TIMEOUT (-1.0)
00042 
00043 class NML_QR_SERVER
00044 {
00045 public:
00046   NML_QR_SERVER (NML_FORMAT_PTR f_ptr, char *qr_name, char *process_name,
00047                  char *config_file);
00048    ~NML_QR_SERVER ();
00049 
00050   NMLTYPE readQuery ();
00051   NMLTYPE waitForQuery (double timeout);
00052   NMLmsg *getQueryAddress ();
00053   int replyToLastQuery (NMLmsg * message_to_send);
00054   int valid ();
00055   int reset ();
00056 
00057 protected:
00058     NML * replyChannel;
00059   NML_QUERY_CHANNEL *queryChannel;
00060   NML_ID_CHANNEL *idChannel;
00061   int reply_subdiv;
00062   char *subdiv_allocation_table;
00063 };
00064 
00065 
00066 class NML_QR_CLIENT
00067 {
00068 public:
00069   NML_QR_CLIENT (NML_FORMAT_PTR f_ptr, char *qr_name, char *process_name,
00070                  char *config_file);
00071    ~NML_QR_CLIENT ();
00072 
00073   int sendQuery (NML_QUERY_MSG *);
00074   NMLTYPE readReply ();
00075   NMLTYPE waitForReply (double timeout);
00076   NMLmsg *getReplyAddress ();
00077   int valid ();
00078   int reset ();
00079 
00080 
00081 protected:
00082     NML * replyChannel;
00083   NML_QUERY_CHANNEL *queryChannel;
00084   NML_ID_CHANNEL *idChannel;
00085   int reply_subdiv;
00086 };
00087 
00088 //NMLQR_HH
00089 #endif

Generated on Sun Dec 2 15:56:51 2001 for rcslib by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001