CUBRID Engine  latest
object_printer.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 /*
20  * object_printer.hpp - parser specific, object_print related code
21  */
22 
23 #ifndef _OBJECT_PRINTER_HPP_
24 #define _OBJECT_PRINTER_HPP_
25 
26 #if defined(SERVER_MODE)
27 #error Does not belong to server module
28 #endif //defined(SERVER_MODE)
29 
30 #include "class_description.hpp"
31 
32 struct db_object;
33 struct sm_attribute;
34 struct sm_class;
35 struct sm_class_constraint;
36 struct sm_method;
37 struct sm_method_argument;
38 struct sm_method_file;
39 struct sm_method_signature;
40 struct sm_partition;
41 struct sm_resolution;
42 struct tp_domain;
43 struct tr_triglist;
44 struct tr_trigger;
45 class string_buffer;
46 
47 namespace object_print
48 {
49  struct strlist;
50 }
51 
53 {
54  private:
56  public:
58  : m_buf (buf)
59  {}
60 
61  void describe_comment (const char *comment);
62  void describe_partition_parts (const sm_partition &parts, class_description::type prt_type);
63  void describe_identifier (const char *identifier, class_description::type prt_type);
64  void describe_domain (/*const*/ tp_domain &domain, class_description::type prt_type, bool force_print_collation);
65  void describe_argument (const sm_method_argument &argument, class_description::type prt_type);
66  void describe_method (const struct db_object &op, const sm_method &method_p, class_description::type prt_type);
67  void describe_signature (const sm_method_signature &signature_p, class_description::type prt_type);
68  void describe_attribute (const struct db_object &class_p, const sm_attribute &attribute_p, bool is_inherited,
69  class_description::type prt_type, bool force_print_collation);
70  void describe_constraint (const sm_class &class_p,
71  const sm_class_constraint &constraint_p,
72  class_description::type prt_type);
73  void describe_resolution (const sm_resolution &resolution, class_description::type prt_type);
74  void describe_method_file (const struct db_object &obj, const sm_method_file &file);
75  void describe_class_trigger (const tr_trigger &trigger);
76  void describe_class (struct db_object *class_op);
77  void describe_partition_info (const sm_partition &partinfo);
78 
79  static const char *describe_trigger_condition_time (const tr_trigger &trigger);
80  static const char *describe_trigger_action_time (const tr_trigger &trigger);
81 
82  protected:
83 };
84 
85 #endif // _OBJECT_PRINTER_HPP_
object_printer(string_buffer &buf)
string_buffer & m_buf