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: IoT_LED_demo ServoTest uWater_Project hackathon ... more
api/TaskletResourceObserver.h
- Committer:
- ansond
- Date:
- 2015-04-08
- Revision:
- 35:f12e61aaf004
- Parent:
- 34:03a8cc428b8b
File content as of revision 35:f12e61aaf004:
/**
* @file TaskletResourceObserver.h
* @brief mbed CoAP DynamicResource Tasklet-based observer (header)
* @author Doug Anson/Chris Paola
* @version 1.0
* @see
*
* Copyright (c) 2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __TASKLET_RESOURCE_OBSERVER_H__
#define __TASKLET_RESOURCE_OBSERVER_H__
// mbed support
#include "mbed.h"
// mbedConnectorInterface configuration
#include "mbedConnectorInterface.h"
// Base class support
#include "ResourceObserver.h"
// Tasklet support under network_stubs.h in mbedEndpointNetwork
#ifdef CONNECTOR_USING_TASKLETS
#include "network_stubs.h"
#endif
class TaskletResourceObserver : public ResourceObserver {
public:
/**
Default Constructor
@param resource input the resource to observe
@param timer_id input the id for our timer (can be index value of each resource that is observed...)
@param sleep_time input the time for the observation tasklet to sleep (in ms)
*/
TaskletResourceObserver(DynamicResource *resource,uint8_t timer_id, int sleep_time = NSP_RD_UPDATE_PERIOD);
/**
Copy Constructor
*/
TaskletResourceObserver(const TaskletResourceObserver &observer);
/**
Destructor
*/
virtual ~TaskletResourceObserver();
/**
begin the observation
*/
virtual void beginObservation();
/**
stop the observation
*/
virtual void stopObservation();
#ifdef CONNECTOR_USING_TASKLETS
/**
tasklet invoke function (static)
*/
static void _observation_notifier(arm_event_s *event);
#endif
#ifdef CONNECTOR_USING_TASKLETS
/**
set the current event
@param event input the current event
*/
void setEvent(arm_event_s *event);
#endif
/**
start the tasklet timer
*/
void startTimer();
/**
get the tasklet timer ID
@return timer id
*/
uint8_t getTimerID();
private:
int m_tasklet_id;
#ifdef CONNECTOR_USING_TASKLETS
arm_event_s *m_event;
#endif
uint8_t m_timer_id;
bool m_timer_active;
};
#endif // __TASKLET_RESOURCE_OBSERVER_H__
