Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation
Schema.h
Go to the documentation of this file.
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 #ifndef _QPID_CONSOLE_SCHEMA_H_
22 #define _QPID_CONSOLE_SCHEMA_H_
23 
24 #include "qpid/console/ClassKey.h"
25 #include <boost/shared_ptr.hpp>
26 #include <vector>
27 
28 namespace qpid {
29 namespace framing {
30  class Buffer;
31 }
32 namespace console {
33  class Value;
34 
35  struct SchemaArgument {
36  SchemaArgument(framing::Buffer& buffer, bool forMethod = false);
37  boost::shared_ptr<Value> decodeValue(framing::Buffer& buffer);
38 
39  std::string name;
41  bool dirInput;
42  bool dirOutput;
43  std::string unit;
44  int min;
45  int max;
46  int maxLen;
47  std::string desc;
48  std::string defaultVal;
49  };
50 
51  struct SchemaProperty {
53  boost::shared_ptr<Value> decodeValue(framing::Buffer& buffer);
54 
55  std::string name;
58  bool isIndex;
59  bool isOptional;
60  std::string unit;
61  int min;
62  int max;
63  int maxLen;
64  std::string desc;
65  };
66 
67  struct SchemaStatistic {
69  boost::shared_ptr<Value> decodeValue(framing::Buffer& buffer);
70 
71  std::string name;
73  std::string unit;
74  std::string desc;
75  };
76 
77  struct SchemaMethod {
79  ~SchemaMethod();
80 
81  std::string name;
82  std::string desc;
83  std::vector<SchemaArgument*> arguments;
84  };
85 
86  struct SchemaClass {
87  static const uint8_t KIND_TABLE = 1;
88  static const uint8_t KIND_EVENT = 2;
89 
90  SchemaClass(const uint8_t kind, const ClassKey& key, framing::Buffer& buffer);
91  ~SchemaClass();
92  const ClassKey& getClassKey() const { return key; }
93 
94  const uint8_t kind;
95  const ClassKey key;
96  std::vector<SchemaProperty*> properties;
97  std::vector<SchemaStatistic*> statistics;
98  std::vector<SchemaMethod*> methods;
99  std::vector<SchemaArgument*> arguments;
100  };
101 }
102 }
103 
104 
105 #endif

Qpid C++ API Reference
Generated on Thu Jun 13 2013 for Qpid C++ Client API by doxygen 1.8.1.1