Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed_mqtt_endpoint_ublox_ethernet mbed_mqtt_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_ethernet ... more
Resource.cpp
- Committer:
- ansond
- Date:
- 2014-03-02
- Revision:
- 56:604a75f111fd
- Parent:
- 54:d315b7c0a7a3
- Child:
- 57:da85ca0fbbf9
File content as of revision 56:604a75f111fd:
/* Copyright C2013 Doug Anson, MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
* and associated documentation files the "Software", to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge, publish, distribute,
* sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "Resource.h"
#include "MBEDio.h"
// default constructor
Resource::Resource(ErrorHandler *error_handler,char *ep_name,char *name,char *value,void *cb) {
this->m_error_handler = error_handler;
this->m_io = NULL;
memset(this->m_name,0,RESOURCE_NAME_LEN+1);
memset(this->m_value,0,RESOURCE_VALUE_LEN+1);
memset(this->m_endpoint_name,0,LIGHT_NAME_LEN+1);
this->setName(name);
this->setValue(value);
this->setCallbackPointer(cb);
this->plumb(ep_name,name);
}
// default destructor
Resource::~Resource() {
}
// get the error handler
ErrorHandler *Resource::logger() { return this->m_error_handler; }
// get and set the name of the resource
char *Resource::getName() { return this->m_name; }
void Resource::setName(char *name) {
if (name != NULL) {
memset(this->m_name,0,RESOURCE_NAME_LEN+1);
strncpy(this->m_name,name,this->min(RESOURCE_NAME_LEN,strlen(name)));
}
}
// get the value of the resource
char *Resource::getValue() { this->extract(this->getName()); return this->getValuePointer(); }
char *Resource::getValuePointer() { return this->m_value; }
// set the value of the resource
void Resource::setValue(char *value) { this->setValue(value,strlen(value)); }
void Resource::setValue(char *value,int length) {
if (value != NULL && length > 0) {
memset(this->m_value,0,RESOURCE_VALUE_LEN+1);
strncpy(this->m_value,value,this->min(RESOURCE_VALUE_LEN,length));
}
}
// plumb the resource (base class does nothing other than save the endpoint_name)
void Resource::plumb(char *endpoint_name,char *name) {
memset(this->m_endpoint_name,0,LIGHT_NAME_LEN+1);
if (endpoint_name != NULL) {
memset(this->m_endpoint_name,0,LIGHT_NAME_LEN+1);
strncpy(this->m_endpoint_name,endpoint_name,this->min(LIGHT_NAME_LEN,strlen(endpoint_name)));
}
}
// extract the resource value
void Resource::extract(char *name) {
if (this->m_io != NULL) {
MBEDio *io = (MBEDio *)this->m_io;
io->update();
}
}
// get the endpoint anme
char *Resource::getEndpointName() { return this->m_endpoint_name; }
// set the base I/O
void Resource::setIO(void *io) { this->m_io = io; }
// set the internal resource linkage
void Resource::setCallbackPointer(void *cb) { this->m_cb = cb; }
void *Resource::getCallbackPointer() { return this->m_cb; }
// min function
int Resource::min(int value1,int value2) {
if (value1 < value2) return value1;
return value2;
}