1%%--------------------------------------------------------------------
2%%
3%% %CopyrightBegin%
4%%
5%% Copyright Ericsson AB 1997-2016. All Rights Reserved.
6%%
7%% Licensed under the Apache License, Version 2.0 (the "License");
8%% you may not use this file except in compliance with the License.
9%% 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, software
14%% distributed under the License is distributed on an "AS IS" BASIS,
15%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16%% See the License for the specific language governing permissions and
17%% limitations under the License.
18%%
19%% %CopyrightEnd%
20%%
21%%
22%%----------------------------------------------------------------------
23%% File    : ifr_types.hrl
24%% Purpose : Record definitions for structs used in the interface repository
25%%----------------------------------------------------------------------
26
27
28%%%----------------------------------------------------------------------
29%%% *********************************************************************
30%%% *									*
31%%% *                        PLEASE NOTE				*
32%%% *									*
33%%% * If a record is removed or added in this file, select/2 in		*
34%%% * orber_ifr.erl _MUST_ be updated accordingly.			*
35%%% *									*
36%%% *********************************************************************
37%%%----------------------------------------------------------------------
38
39-record(contained_description, {kind, value}).
40
41-record(structmember, {name, type, type_def}).
42
43-record(unionmember, {name, label, type, type_def}).
44
45-record(container_description, {contained_object, kind, value}).
46
47-record(moduledescription, {name, id, defined_in, version}).
48
49-record(constantdescription, {name, id, defined_in, version, type, value}).
50
51-record(typedescription, {name, id, defined_in, version, type}).
52
53-define(make_typedescription(Obj,Object_type),
54	#typedescription{name = Obj#Object_type.name,
55			 id = Obj#Object_type.id,
56			 defined_in = Obj#Object_type.defined_in,
57			 version = Obj#Object_type.version,
58			 type = Obj#Object_type.type}).
59
60-record(exceptiondescription, {name, id, defined_in, version, type}).
61
62-record(attributedescription, {name, id, defined_in, version, type, mode}).
63
64-record(parameterdescription, {name, type, type_def, mode}).
65
66-record(operationdescription, {name, id, defined_in, version, result, mode,
67			       contexts, parameters, exceptions}).
68
69-record(fullinterfacedescription, {name, id, defined_in, version, operations,
70				   attributes, base_interfaces, type}).
71
72-record(interfacedescription, {name, id, defined_in, version,
73			       base_interfaces}).
74