blob: 961d7821677468433694c2d206ea02081c12a657 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#ifndef INCLUDE_ANALYZER_H
#define INCLUDE_ANALYZER_H
#include "ValueTypes_impl.h"
#include "tao/DynamicAny/DynAnyFactory.h"
//============= class DynAnyAnalyzer ============
class DynAnyAnalyzer
{
private:
unsigned int level_;
CORBA::ORB_var orb_;
DynamicAny::DynAnyFactory_var dany_fact_;
public:
DynAnyAnalyzer (int argc, ACE_TCHAR *argv[]);
~DynAnyAnalyzer (void) {orb_->destroy ();}
DynamicAny::DynAny_ptr DynAny_NoTrunc (const CORBA::Any &);
DynamicAny::DynAny_ptr DynAny (const CORBA::Any &);
DynamicAny::DynAny_ptr DynAny (const CORBA::TypeCode_ptr &);
void register_factory (CORBA::ValueFactoryBase_var factory);
void analyze (
DynamicAny::DynAny_ptr da,
CORBA::Boolean newline = false);
private:
/// List of base types.
typedef ACE_Array_Base<CORBA::TypeCode_var> BaseTypesList_t;
void tab (const char p[])
{
for (unsigned int i = 0u; i < level_ ; ++i)
ACE_DEBUG ((LM_DEBUG, ".."));
ACE_DEBUG ((LM_DEBUG, "%C", p));
}
void analyze_basic_seq (
CORBA::TypeCode_ptr tc,
DynamicAny::DynAny_ptr da);
static void get_base_types (
CORBA::TypeCode_ptr tc,
BaseTypesList_t &base_types,
CORBA::ULong *total_member_count = 0);
/// Return the unaliased valuetype typecode that corresponds to
/// index (0..total_members-1) from the given hiarchical list of
/// the derived type and it basetypes.
static CORBA::TypeCode_ptr get_correct_base_type (
const BaseTypesList_t &base_types,
CORBA::ULong &index);
};
#endif // INCLUDE_ANALYZER_H
|