Server that executes RPC commands through HTTP.

Dependencies:   EthernetInterface mbed-rpc mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RPCObjectManager.cpp Source File

RPCObjectManager.cpp

00001 #include "RPCObjectManager.h"
00002 #include "mbed.h"
00003 
00004 RPCObjectManager& RPCObjectManager::instance()
00005 {
00006     static RPCObjectManager om;
00007     return om;
00008 }
00009 
00010 RPCObjectManager::RPCObjectManager():
00011 objects()
00012 {
00013 }
00014 
00015 RPCObjectManager::~RPCObjectManager()
00016 {
00017     for(std::list<char*>::iterator itor = objects.begin();
00018         itor != objects.end();
00019         ++itor)
00020         delete *itor;
00021 }
00022 
00023 void RPCObjectManager::store_object(char *obj_name)
00024 {
00025     char *obj = new char[strlen(obj_name)+1];
00026     strcpy(obj, obj_name);
00027     obj[strlen(obj_name)] = '\0';
00028     objects.push_back(obj);
00029 }
00030 
00031 void RPCObjectManager::remove_object(char *obj_name)
00032 {
00033     for(std::list<char*>::iterator itor = objects.begin();
00034         itor != objects.end();
00035         ++itor)
00036         if(!strcmp(obj_name, *itor))
00037         {
00038             delete *itor;
00039             objects.erase(itor);
00040             break;
00041         }
00042 }
00043 
00044 bool RPCObjectManager::lookup_object(char *obj_name)
00045 {
00046     for(std::list<char*>::iterator itor = objects.begin();
00047         itor != objects.end();
00048         ++itor)
00049         if(!strcmp(obj_name, *itor))
00050             return true;
00051     return false;
00052 }
00053 
00054 bool RPCObjectManager::is_empty()
00055 {
00056     return objects.empty();
00057 }
00058 
00059 std::list<char*>::iterator RPCObjectManager::begin()
00060 {
00061     return objects.begin();
00062 }
00063 
00064 std::list<char*>::iterator RPCObjectManager::end()
00065 {
00066     return objects.end();
00067 }
00068