Webserver only w/o any other functions, single thread. Running on STM32F013+W5500

Dependencies:   NTPClient W5500Interface Watchdog device_configuration eeprom_flash mbed-rpc-nucleo mbed-rtos mbed

Fork of F103-Serial-to-Ethernet by Chau Vo

Committer:
olympux
Date:
Fri Aug 19 20:17:00 2016 +0000
Revision:
47:d92d2c5b8073
Parent:
40:c966abbe2d62
forked to create a new repo for webserver on F103+W5500. No other functions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
olympux 40:c966abbe2d62 1 #include "RPCObjectManager.h"
olympux 40:c966abbe2d62 2 #include "mbed.h"
olympux 40:c966abbe2d62 3
olympux 40:c966abbe2d62 4 RPCObjectManager& RPCObjectManager::instance()
olympux 40:c966abbe2d62 5 {
olympux 40:c966abbe2d62 6 static RPCObjectManager om;
olympux 40:c966abbe2d62 7 return om;
olympux 40:c966abbe2d62 8 }
olympux 40:c966abbe2d62 9
olympux 40:c966abbe2d62 10 RPCObjectManager::RPCObjectManager():
olympux 40:c966abbe2d62 11 objects()
olympux 40:c966abbe2d62 12 {
olympux 40:c966abbe2d62 13 }
olympux 40:c966abbe2d62 14
olympux 40:c966abbe2d62 15 RPCObjectManager::~RPCObjectManager()
olympux 40:c966abbe2d62 16 {
olympux 40:c966abbe2d62 17 for(std::list<char*>::iterator itor = objects.begin();
olympux 40:c966abbe2d62 18 itor != objects.end();
olympux 40:c966abbe2d62 19 ++itor)
olympux 40:c966abbe2d62 20 delete *itor;
olympux 40:c966abbe2d62 21 }
olympux 40:c966abbe2d62 22
olympux 40:c966abbe2d62 23 void RPCObjectManager::store_object(char *obj_name)
olympux 40:c966abbe2d62 24 {
olympux 40:c966abbe2d62 25 char *obj = new char[strlen(obj_name)+1];
olympux 40:c966abbe2d62 26 strcpy(obj, obj_name);
olympux 40:c966abbe2d62 27 obj[strlen(obj_name)] = '\0';
olympux 40:c966abbe2d62 28 objects.push_back(obj);
olympux 40:c966abbe2d62 29 }
olympux 40:c966abbe2d62 30
olympux 40:c966abbe2d62 31 void RPCObjectManager::remove_object(char *obj_name)
olympux 40:c966abbe2d62 32 {
olympux 40:c966abbe2d62 33 for(std::list<char*>::iterator itor = objects.begin();
olympux 40:c966abbe2d62 34 itor != objects.end();
olympux 40:c966abbe2d62 35 ++itor)
olympux 40:c966abbe2d62 36 if(!strcmp(obj_name, *itor))
olympux 40:c966abbe2d62 37 {
olympux 40:c966abbe2d62 38 delete *itor;
olympux 40:c966abbe2d62 39 objects.erase(itor);
olympux 40:c966abbe2d62 40 break;
olympux 40:c966abbe2d62 41 }
olympux 40:c966abbe2d62 42 }
olympux 40:c966abbe2d62 43
olympux 40:c966abbe2d62 44 bool RPCObjectManager::lookup_object(char *obj_name)
olympux 40:c966abbe2d62 45 {
olympux 40:c966abbe2d62 46 for(std::list<char*>::iterator itor = objects.begin();
olympux 40:c966abbe2d62 47 itor != objects.end();
olympux 40:c966abbe2d62 48 ++itor)
olympux 40:c966abbe2d62 49 if(!strcmp(obj_name, *itor))
olympux 40:c966abbe2d62 50 return true;
olympux 40:c966abbe2d62 51 return false;
olympux 40:c966abbe2d62 52 }
olympux 40:c966abbe2d62 53
olympux 40:c966abbe2d62 54 bool RPCObjectManager::is_empty()
olympux 40:c966abbe2d62 55 {
olympux 40:c966abbe2d62 56 return objects.empty();
olympux 40:c966abbe2d62 57 }
olympux 40:c966abbe2d62 58
olympux 40:c966abbe2d62 59 std::list<char*>::iterator RPCObjectManager::begin()
olympux 40:c966abbe2d62 60 {
olympux 40:c966abbe2d62 61 return objects.begin();
olympux 40:c966abbe2d62 62 }
olympux 40:c966abbe2d62 63
olympux 40:c966abbe2d62 64 std::list<char*>::iterator RPCObjectManager::end()
olympux 40:c966abbe2d62 65 {
olympux 40:c966abbe2d62 66 return objects.end();
olympux 40:c966abbe2d62 67 }
olympux 40:c966abbe2d62 68