Bump for 3.6-28
[LibreOffice.git] / autodoc / inc / ary / idl / i_service.hxx
blob50d13583f38074ecf692dcaad8d8d4f11dee9a80
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef ARY_IDL_I_SERVICE_HXX
30 #define ARY_IDL_I_SERVICE_HXX
32 // BASE CLASSES
33 #include <ary/idl/i_ce.hxx>
35 // USED SERVICES
36 #include <ary/idl/i_comrela.hxx>
37 #include <ary/stdconstiter.hxx>
38 #include <ary/idl/ik_service.hxx>
43 namespace ary
45 namespace info
47 class CodeInformation;
49 namespace idl
51 namespace ifc_service
53 struct attr;
57 /** Represents an IDL service.
59 class Service : public CodeEntity
61 public:
62 enum E_ClassId { class_id = 2003 }; // See reposy.cxx
64 // LIFECYCLE
65 Service(
66 const String & i_sName,
67 Ce_id i_nOwner );
68 ~Service();
70 // INQUIRY
71 void Get_SupportedInterfaces(
72 Dyn_StdConstIterator<CommentedRelation> &
73 o_rResult ) const;
74 void Get_IncludedServices(
75 Dyn_StdConstIterator<CommentedRelation> &
76 o_rResult ) const;
78 // ACCESS
79 void Add_Property(
80 Ce_id i_nProperty );
81 void AddRef_IncludedService(
82 Type_id i_nService,
83 DYN doc::OldIdlDocu *
84 pass_dpDocu );
85 void AddRef_SupportedInterface(
86 Type_id i_nInterface,
87 DYN doc::OldIdlDocu *
88 pass_dpDocu );
89 private:
90 // Interface csv::ConstProcessorClient:
91 virtual void do_Accept(
92 csv::ProcessorIfc & io_processor ) const;
93 // Interface ary::Object:
94 virtual ClassId get_AryClass() const;
96 // Interface CodeEntity
97 virtual const String & inq_LocalName() const;
98 virtual Ce_id inq_NameRoom() const;
99 virtual Ce_id inq_Owner() const;
100 virtual E_SightLevel inq_SightLevel() const;
102 // Locals
103 typedef std::vector< CommentedRelation > RelationList;
104 typedef std::vector<Ce_id> PropertyList;
105 friend struct ifc_service::attr;
107 // DATA
108 String sName;
109 Ce_id nOwner;
111 RelationList aIncludedServices;
112 RelationList aSupportedInterfaces;
113 PropertyList aProperties;
119 // IMPLEMENTATION
120 inline void
121 Service::Add_Property( Ce_id i_nProperty )
122 { aProperties.push_back(i_nProperty); }
124 inline void
125 Service::AddRef_IncludedService( Type_id i_nService,
126 DYN doc::OldIdlDocu * pass_dpDocu )
127 { aIncludedServices.push_back( CommentedRelation(i_nService, pass_dpDocu) ); }
129 inline void
130 Service::AddRef_SupportedInterface( Type_id i_nInterface,
131 DYN doc::OldIdlDocu * pass_dpDocu )
132 { aSupportedInterfaces.push_back( CommentedRelation(i_nInterface, pass_dpDocu) ); }
138 } // namespace idl
139 } // namespace ary
140 #endif
142 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */