Locator_XMLHandler.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //=============================================================================
00003 /**
00004  *  @file   Locator_XMLHandler.h
00005  *
00006  *  Locator_XMLHandler.h,v 1.3 2006/01/04 16:10:11 giovannd Exp
00007  *
00008  *  @author Justin Michel <michel_j@ociweb.com>
00009  */
00010 //=============================================================================
00011 
00012 #ifndef Locator_XMLHandler_H
00013 #define Locator_XMLHandler_H
00014 
00015 #include "ACEXML/common/DefaultHandler.h"
00016 
00017 #include "ace/Vector_T.h"
00018 
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif /* ACE_LACKS_PRAGMA_ONCE */
00022 
00023 /**
00024  * Callback SAX XML Handler for parsing XML.
00025  */
00026 class Locator_XMLHandler : public ACEXML_DefaultHandler
00027 {
00028 public:
00029 
00030   // XML ELEMENT names
00031   static const char* ROOT_TAG;
00032   static const char* SERVER_INFO_TAG;
00033   static const char* ENVIRONMENT_TAG;
00034   static const char* ACTIVATOR_INFO_TAG;
00035 
00036   struct EnvVar {
00037     ACE_CString name;
00038     ACE_CString value;
00039     bool operator==(const EnvVar&) const; // To allow Vector explicit instantiation
00040     bool operator!=(const EnvVar&) const; // To allow Vector explicit instantiation
00041   };
00042 
00043   typedef ACE_Vector<EnvVar> EnvList;
00044 
00045   struct Callback {
00046     virtual ~Callback() {}
00047 
00048     virtual void next_server (const ACE_CString& server_name,
00049       const ACE_CString& aname, const ACE_CString& startup_cmd,
00050       const EnvList& env_vars, const ACE_CString& working_dir,
00051       const ACE_CString& actmode, int start_limit,
00052       const ACE_CString& partial_ior, const ACE_CString& ior) = 0;
00053 
00054     virtual void next_activator (const ACE_CString& activator_name,
00055                                  long token,
00056                                  const ACE_CString& ior) = 0;
00057   };
00058 
00059   Locator_XMLHandler (Callback& cb);
00060 
00061   virtual void startElement (const ACEXML_Char* namespaceURI,
00062                              const ACEXML_Char* localName,
00063                              const ACEXML_Char* qName,
00064                              ACEXML_Attributes* atts ACEXML_ENV_ARG_DECL)
00065     ACE_THROW_SPEC ((ACEXML_SAXException));
00066 
00067   virtual void endElement (const ACEXML_Char* namespaceURI,
00068                            const ACEXML_Char* localName,
00069                            const ACEXML_Char* qName ACEXML_ENV_ARG_DECL)
00070     ACE_THROW_SPEC ((ACEXML_SAXException));
00071 
00072  private:
00073 
00074   // callback on completion of an element
00075   Callback& callback_;
00076 
00077   ACE_CString server_name_;
00078   ACE_CString activator_name_;
00079   ACE_CString command_line_;
00080   ACE_CString activation_;
00081   ACE_CString working_dir_;
00082   ACE_CString server_object_ior_;
00083   ACE_CString partial_ior_;
00084   int start_limit_;
00085   EnvList env_vars_;
00086 };
00087 
00088 #endif /* Locator_XMLHandler_H */

Generated on Thu Nov 9 13:36:20 2006 for TAO_Implementation_Repository by doxygen 1.3.6