fdo#74697 Add Bluez 5 support for impress remote.
[LibreOffice.git] / autodoc / inc / ary / idl / i_service.hxx
blob9acfb07f243cce4af535a3e38a7c345258aeff27
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef ARY_IDL_I_SERVICE_HXX
21 #define ARY_IDL_I_SERVICE_HXX
23 // BASE CLASSES
24 #include <ary/idl/i_ce.hxx>
26 // USED SERVICES
27 #include <ary/idl/i_comrela.hxx>
28 #include <ary/stdconstiter.hxx>
29 #include <ary/idl/ik_service.hxx>
34 namespace ary
36 namespace idl
38 namespace ifc_service
40 struct attr;
44 /** Represents an IDL service.
46 class Service : public CodeEntity
48 public:
49 enum E_ClassId { class_id = 2003 }; // See reposy.cxx
51 // LIFECYCLE
52 Service(
53 const String & i_sName,
54 Ce_id i_nOwner );
55 ~Service();
57 // INQUIRY
58 void Get_SupportedInterfaces(
59 Dyn_StdConstIterator<CommentedRelation> &
60 o_rResult ) const;
61 void Get_IncludedServices(
62 Dyn_StdConstIterator<CommentedRelation> &
63 o_rResult ) const;
65 // ACCESS
66 void Add_Property(
67 Ce_id i_nProperty );
68 void AddRef_IncludedService(
69 Type_id i_nService,
70 DYN doc::OldIdlDocu *
71 pass_dpDocu );
72 void AddRef_SupportedInterface(
73 Type_id i_nInterface,
74 DYN doc::OldIdlDocu *
75 pass_dpDocu );
76 private:
77 // Interface csv::ConstProcessorClient:
78 virtual void do_Accept(
79 csv::ProcessorIfc & io_processor ) const;
80 // Interface ary::Object:
81 virtual ClassId get_AryClass() const;
83 // Interface CodeEntity
84 virtual const String & inq_LocalName() const;
85 virtual Ce_id inq_NameRoom() const;
86 virtual Ce_id inq_Owner() const;
87 virtual E_SightLevel inq_SightLevel() const;
89 // Locals
90 typedef std::vector< CommentedRelation > RelationList;
91 typedef std::vector<Ce_id> PropertyList;
92 friend struct ifc_service::attr;
94 // DATA
95 String sName;
96 Ce_id nOwner;
98 RelationList aIncludedServices;
99 RelationList aSupportedInterfaces;
100 PropertyList aProperties;
106 // IMPLEMENTATION
107 inline void
108 Service::Add_Property( Ce_id i_nProperty )
109 { aProperties.push_back(i_nProperty); }
111 inline void
112 Service::AddRef_IncludedService( Type_id i_nService,
113 DYN doc::OldIdlDocu * pass_dpDocu )
114 { aIncludedServices.push_back( CommentedRelation(i_nService, pass_dpDocu) ); }
116 inline void
117 Service::AddRef_SupportedInterface( Type_id i_nInterface,
118 DYN doc::OldIdlDocu * pass_dpDocu )
119 { aSupportedInterfaces.push_back( CommentedRelation(i_nInterface, pass_dpDocu) ); }
125 } // namespace idl
126 } // namespace ary
127 #endif
129 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */