Mistake on this page? Email us
m2minterfacefactory.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 ARM Limited. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  * Licensed under the Apache License, Version 2.0 (the License); you may
5  * not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef M2M_INTERFACE_FACTORY_H
17 #define M2M_INTERFACE_FACTORY_H
18 
19 #include <stdlib.h>
24 
25 //FORWARD DECLARATION
26 class M2MDevice;
27 class M2MServer;
28 class M2MInterfaceImpl;
29 
37 private:
38  // Prevents the use of an assignment operator by accident.
39  M2MInterfaceFactory& operator=( const M2MInterfaceFactory& /*other*/ );
40 
41  // Prevents the use of a copy constructor by accident.
42  M2MInterfaceFactory( const M2MInterfaceFactory& /*other*/ );
43 
44 
45 public:
46 
65  const String &endpoint_name,
66  const String &endpoint_type = "",
67  const int32_t life_time = -1,
68  const uint16_t listen_port = 5683,
69  const String &domain = "",
70  M2MInterface::BindingMode mode = M2MInterface::NOT_SET,
71  M2MInterface::NetworkStack stack = M2MInterface::LwIP_IPv4,
72  const String &context_address = "",
73  const String &version = DEFAULT_M2MVERSION);
74 
82 
89  static M2MServer *create_server();
90 
98  static M2MDevice *create_device();
99 
107  static M2MObject *create_object(const String &name);
108 
123  static M2MResource *create_resource(M2MObjectList &m2m_obj_list,
124  const uint16_t object_id,
125  const uint16_t object_instance_id,
126  const uint16_t resource_id,
127  const M2MResourceInstance::ResourceType resource_type,
128  const M2MBase::Operation allowed,
129  bool multiple_instance = false,
130  bool external_blockwise_store = false);
131 
132 #ifdef MBED_CLOUD_CLIENT_EDGE_EXTENSION
133 
141  static M2MEndpoint* create_endpoint(const String &name);
142 #endif
143 
144 private:
153  static M2MObject* find_or_create_object(M2MObjectList &object_list,
154  const uint16_t object_id,
155  bool &object_created);
156 
165  static M2MObjectInstance* find_or_create_object_instance(M2MObject &object,
166  const uint16_t object_instance_id,
167  bool &object_instance_created);
168 
177  static M2MResource* find_or_create_resource(M2MObjectInstance &object_instance,
178  const uint16_t resource_id,
179  const M2MResourceInstance::ResourceType resource_type,
180  bool multiple_instance,
181  bool external_blockwise_store);
182 
183  friend class Test_M2MInterfaceFactory;
184 };
185 
186 #endif // M2M_INTERFACE_FACTORY_H
Definition: m2mobject.h:35
Definition: m2mserver.h:31
static M2MInterface * create_interface(M2MInterfaceObserver &observer, const String &endpoint_name, const String &endpoint_type="", const int32_t life_time=-1, const uint16_t listen_port=5683, const String &domain="", M2MInterface::BindingMode mode=M2MInterface::NOT_SET, M2MInterface::NetworkStack stack=M2MInterface::LwIP_IPv4, const String &context_address="", const String &version=DEFAULT_M2MVERSION)
Creates an interface object for the mbed Client Inteface. With this, the client can handle client ope...
ServerType
An enum defining an interface operation that can be handled by the Security Object.
Definition: m2msecurity.h:76
Definition: m2minterfaceobserver.h:32
Definition: m2mobjectinstance.h:42
Definition: m2mdevice.h:33
static M2MObject * create_object(const String &name)
Creates a generic object for the mbed Client Inteface. With this, the client can manage its own custo...
ResourceType
Definition: m2mresourcebase.h:61
BindingMode
An enum defining different kinds of binding modes handled for client operations.
Definition: m2minterface.h:121
Definition: m2msecurity.h:31
static M2MDevice * create_device()
Creates a device object for the mbed Client Inteface. With this, the client can manage the device res...
NetworkStack
An enum defining different kinds of network stacks that can be used by mbed Client.
Definition: m2minterface.h:138
header for M2MInterfaceObserver
header for M2MResource.
static M2MSecurity * create_security(M2MSecurity::ServerType server_type)
Creates a security object for the mbed Client Inteface. With this, the client can manage Bootstrappin...
File defining all the constants used across mbed-client.
static M2MServer * create_server()
Creates a server object for the mbed Client Inteface. With this, the client can manage the server res...
Definition: m2minterface.h:88
Definition: m2mresource.h:38
Definition: m2minterfacefactory.h:36
header for M2MSecurity.
Operation
Enum defining an operation that can be supported by a given resource.
Definition: m2mbase.h:112
static M2MResource * create_resource(M2MObjectList &m2m_obj_list, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, const M2MResourceInstance::ResourceType resource_type, const M2MBase::Operation allowed, bool multiple_instance=false, bool external_blockwise_store=false)
Creates a M2M resource and places it to the given object list.