3 //=============================================================================
5 * @file URL_Visitor_Factory.h
7 * @author Douglas C. Schmidt <d.schmidt@vanderbilt.edu>
9 //=============================================================================
12 #ifndef _URL_VISITOR_FACTORY_H
13 #define _URL_VISITOR_FACTORY_H
15 #include "URL_Visitor.h"
16 #include "Command_Processor.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 * @class URL_Visitor_Factory
25 * @brief Abstract base class that creates URL visitors.
27 * Subclasses define each of the Factory Methods to
28 * make the right objects, which all "vary" together.
30 class URL_Visitor_Factory
34 virtual ~URL_Visitor_Factory ();
36 /// Factory Method that makes the appropriate type of <URL_Visitor>.
37 virtual URL_Visitor
*make_visitor () = 0;
39 /// Factory Method that makes the appropriate type of
40 /// <Command_Processor>.
41 virtual Command_Processor
*make_command_processor () = 0;
45 * @class URL_Validation_Visitor_Factory
47 * @brief Create a URL visitor that validates URL links.
49 class URL_Validation_Visitor_Factory
: public URL_Visitor_Factory
52 /// Factory Method that makes a <URL_Validation_Visitor>.
53 virtual URL_Visitor
*make_visitor ();
55 /// Factory Method that makes a <FIFO_Command_Processor>.
56 virtual Command_Processor
*make_command_processor ();
60 * @class URL_Download_Visitor_Factory
62 * @brief Create a URL visitor that downloads URL links.
64 class URL_Download_Visitor_Factory
: public URL_Visitor_Factory
67 /// Factory Method that makes a <URL_Download_Visitor>.
68 virtual URL_Visitor
*make_visitor ();
70 /// Factory Method that makes a <FIFO_Command_Processor>.
71 virtual Command_Processor
*make_command_processor ();
74 #endif /* _URL_VISITOR_FACTORY_H */