1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 #ifndef ADC_DOC_DEAL_HXX
25 #define ADC_DOC_DEAL_HXX
26
27 // BASE CLASSES
28 #include <tokens/tokproct.hxx>
29 // USED SERVICES
30 #include <ary/cpp/c_types4cpp.hxx>
31
32 namespace ary
33 {
34 namespace doc
35 {
36 class OldCppDocu;
37 }
38 }
39
40
41
42
43 class DocuDealer
44 {
45 public:
46 // INQUIRY
~DocuDealer()47 virtual ~DocuDealer() {}
48
49 // OPERATIONS
50 /** @descr
51 This distributes the let_drDocu to the matching ary::RepositoryEntity .
52
53 If the docu is not inline, it will be saved and later given to the next
54 ary::CodeEntity. Or it will be discarded, if there does not come a matching
55 ary::CodeEntity .
56
57 If the docu is inline after a function header or after an enum value
58 or after a function parameter or after a base class, it will be stored
59 together with the matching function, enum value, parameter or base class.
60
61 If the documentation is @file or @project or @glos(sary) it will be
62 stored at the matching ary::cpp::FileGroup, ary::cpp::ProjectGroup
63 or ary::Glossary.
64 */
65 void TakeDocu(
66 DYN ary::doc::OldCppDocu &
67 let_drInfo );
68 private:
69 virtual void do_TakeDocu(
70 DYN ary::doc::OldCppDocu &
71 let_drInfo ) = 0;
72 };
73
74
75
76
77 // IMPLEMENTATION
78 inline void
TakeDocu(DYN ary::doc::OldCppDocu & let_drInfo)79 DocuDealer::TakeDocu( DYN ary::doc::OldCppDocu & let_drInfo )
80 { do_TakeDocu(let_drInfo); }
81
82
83
84
85 #endif
86