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>
23 
24 //FORWARD DECLARATION
25 class M2MDevice;
26 class M2MServer;
27 class M2MInterfaceImpl;
28 
36 private:
37  // Prevents the use of an assignment operator by accident.
38  M2MInterfaceFactory& operator=( const M2MInterfaceFactory& /*other*/ );
39 
40  // Prevents the use of a copy constructor by accident.
41  M2MInterfaceFactory( const M2MInterfaceFactory& /*other*/ );
42 
43 
44 public:
45 
63  const String &endpoint_name,
64  const String &endpoint_type = "",
65  const int32_t life_time = -1,
66  const uint16_t listen_port = 5683,
67  const String &domain = "",
68  M2MInterface::BindingMode mode = M2MInterface::NOT_SET,
69  M2MInterface::NetworkStack stack = M2MInterface::LwIP_IPv4,
70  const String &context_address = "");
71 
79 
86  static M2MServer *create_server();
87 
95  static M2MDevice *create_device();
96 
104  static M2MObject *create_object(const String &name);
105 
120  static M2MResource *create_resource(M2MObjectList &m2m_obj_list,
121  const uint16_t object_id,
122  const uint16_t object_instance_id,
123  const uint16_t resource_id,
124  const M2MResourceInstance::ResourceType resource_type,
125  const M2MBase::Operation allowed,
126  bool multiple_instance = false,
127  bool external_blockwise_store = false);
128 
129 #ifdef MBED_CLOUD_CLIENT_EDGE_EXTENSION
130 
138  static M2MEndpoint* create_endpoint(const String &name);
139 #endif
140 
141 private:
150  static M2MObject* find_or_create_object(M2MObjectList &object_list,
151  const uint16_t object_id,
152  bool &object_created);
153 
162  static M2MObjectInstance* find_or_create_object_instance(M2MObject &object,
163  const uint16_t object_instance_id,
164  bool &object_instance_created);
165 
174  static M2MResource* find_or_create_resource(M2MObjectInstance &object_instance,
175  const uint16_t resource_id,
176  const M2MResourceInstance::ResourceType resource_type,
177  bool multiple_instance,
178  bool external_blockwise_store);
179 
180  friend class Test_M2MInterfaceFactory;
181 };
182 
183 #endif // M2M_INTERFACE_FACTORY_H
Definition: m2mobject.h:35
Definition: m2mserver.h:31
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:70
BindingMode
An enum defining different kinds of binding modes handled for client operations.
Definition: m2minterface.h:119
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:136
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...
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:87
Definition: m2mresource.h:38
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="")
Creates an interface object for the mbed Client Inteface. With this, the client can handle client ope...
Definition: m2minterfacefactory.h:35
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.