Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / ACE / examples / Web_Crawler / URL_Visitor_Factory.h
blobf56b0fc676a544597f3603c494ee7aaa433f9022
1 /* -*- C++ -*- */
3 //=============================================================================
4 /**
5 * @file URL_Visitor_Factory.h
7 * @author Douglas C. Schmidt <d.schmidt@vanderbilt.edu>
8 */
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)
19 #pragma once
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 /**
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
32 public:
33 /// Destructor.
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;
44 /**
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
51 public:
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 ();
59 /**
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
66 public:
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 */