joey shelton / LED_Demo

Dependencies:   MAX44000 PWM_Tone_Library nexpaq_mdk

Fork of LED_Demo by Maxim nexpaq

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sn_grs_stub.c Source File

sn_grs_stub.c

00001 /*
00002  * Copyright (c) 2015 ARM Limited. All rights reserved.
00003  * SPDX-License-Identifier: Apache-2.0
00004  * Licensed under the Apache License, Version 2.0 (the License); you may
00005  * not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
00012  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 /**
00018  *
00019  * \file sn_grs.c
00020  *
00021  * \brief General resource server.
00022  *
00023  */
00024 #include <string.h>
00025 #include <stdlib.h>
00026 
00027 #include "ns_list.h"
00028 #include "ns_types.h"
00029 #include "sn_nsdl.h"
00030 #include "sn_coap_header.h"
00031 #include "sn_coap_protocol.h"
00032 #include "sn_nsdl_lib.h"
00033 #include "sn_grs.h"
00034 
00035 #include "sn_grs_stub.h"
00036 
00037 sn_grs_stub_def sn_grs_stub;
00038 
00039 /* Extern function prototypes */
00040 extern int8_t                       sn_nsdl_build_registration_body(struct nsdl_s *handle, sn_coap_hdr_s *message_ptr, uint8_t updating_registeration);
00041 
00042 
00043 extern int8_t sn_grs_destroy(struct grs_s *handle)
00044 {
00045     if( handle ){
00046         free(handle);
00047     }
00048     return sn_grs_stub.expectedInt8;
00049 }
00050 
00051 extern struct grs_s *sn_grs_init(uint8_t (*sn_grs_tx_callback_ptr)(struct nsdl_s *, sn_nsdl_capab_e , uint8_t *, uint16_t,
00052                                  sn_nsdl_addr_s *), int8_t (*sn_grs_rx_callback_ptr)(struct nsdl_s *, sn_coap_hdr_s *, sn_nsdl_addr_s *),
00053                                  void *(*sn_grs_alloc)(uint16_t), void (*sn_grs_free)(void *))
00054 {
00055     if( sn_grs_stub.retNull ){
00056         return NULL;
00057     }
00058     return sn_grs_stub.expectedGrs;
00059 }
00060 
00061 
00062 
00063 extern sn_grs_resource_list_s *sn_grs_list_resource(struct grs_s *handle, uint16_t pathlen, uint8_t *path)
00064 {
00065     if( sn_grs_stub.retNull ){
00066         return NULL;
00067     }
00068     return sn_grs_stub.expectedList;
00069 }
00070 
00071 
00072 extern void sn_grs_free_resource_list(struct grs_s *handle, sn_grs_resource_list_s *list)
00073 {
00074     if( list ){
00075         free(list);
00076         list = NULL;
00077     }
00078 }
00079 
00080 
00081 extern const sn_nsdl_resource_info_s *sn_grs_get_first_resource(struct grs_s *handle)
00082 {
00083     if( sn_grs_stub.retNull ){
00084         return NULL;
00085     }
00086     if( sn_grs_stub.infoRetCounter == -1 && sn_grs_stub.info2ndRetCounter > 0 ){
00087         sn_grs_stub.info2ndRetCounter--;
00088         return sn_grs_stub.expectedInfo;
00089     }
00090     if( sn_grs_stub.infoRetCounter > 0){
00091         sn_grs_stub.infoRetCounter--;
00092         return sn_grs_stub.expectedInfo;
00093     }
00094     sn_grs_stub.infoRetCounter = -1;
00095     return NULL;
00096 }
00097 
00098 
00099 extern const sn_nsdl_resource_info_s *sn_grs_get_next_resource(struct grs_s *handle, const sn_nsdl_resource_info_s *sn_grs_current_resource)
00100 {
00101     if( sn_grs_stub.retNull ){
00102         return NULL;
00103     }
00104     if( sn_grs_stub.infoRetCounter == -1 && sn_grs_stub.info2ndRetCounter > 0 ){
00105         sn_grs_stub.info2ndRetCounter--;
00106         return sn_grs_stub.expectedInfo;
00107     }
00108     if( sn_grs_stub.infoRetCounter > 0){
00109         sn_grs_stub.infoRetCounter--;
00110         return sn_grs_stub.expectedInfo;
00111     }
00112     sn_grs_stub.infoRetCounter = -1;
00113     return NULL;
00114 }
00115 
00116 
00117 extern int8_t sn_grs_delete_resource(struct grs_s *handle, uint16_t pathlen, uint8_t *path)
00118 {
00119     return sn_grs_stub.expectedInt8;
00120 }
00121 
00122 
00123 extern int8_t sn_grs_update_resource(struct grs_s *handle, sn_nsdl_resource_info_s *res)
00124 {
00125     return sn_grs_stub.expectedInt8;
00126 }
00127 
00128 
00129 extern int8_t sn_grs_create_resource(struct grs_s *handle, sn_nsdl_resource_info_s *res)
00130 {
00131     if( sn_grs_stub.int8SuccessCounter > 0 ){
00132         sn_grs_stub.int8SuccessCounter--;
00133         return SN_NSDL_SUCCESS;
00134     }
00135     return sn_grs_stub.expectedInt8;
00136 }
00137 
00138 
00139 extern int8_t sn_grs_process_coap(struct nsdl_s *nsdl_handle, sn_coap_hdr_s *coap_packet_ptr, sn_nsdl_addr_s *src_addr_ptr)
00140 {
00141     return sn_grs_stub.expectedInt8;
00142 }
00143 
00144 extern int8_t sn_grs_send_coap_message(struct nsdl_s *handle, sn_nsdl_addr_s *address_ptr, sn_coap_hdr_s *coap_hdr_ptr)
00145 {
00146     return sn_grs_stub.expectedInt8;
00147 }
00148 
00149 sn_nsdl_resource_info_s *sn_grs_search_resource(struct grs_s *handle, uint16_t pathlen, uint8_t *path, uint8_t search_method)
00150 {
00151     if(sn_grs_stub.useMockedPath){
00152         memcpy(path, &sn_grs_stub.mockedPath, sn_grs_stub.mockedPathLen);
00153     }
00154     if( sn_grs_stub.retNull ){
00155         return NULL;
00156     }
00157     if( sn_grs_stub.infoRetCounter == -1 && sn_grs_stub.info2ndRetCounter > 0 ){
00158         sn_grs_stub.info2ndRetCounter--;
00159         return sn_grs_stub.expectedInfo;
00160     }
00161     if( sn_grs_stub.infoRetCounter > 0){
00162         sn_grs_stub.infoRetCounter--;
00163         return sn_grs_stub.expectedInfo;
00164     }
00165     sn_grs_stub.infoRetCounter = -1;
00166     return NULL;
00167 }
00168 
00169 void sn_grs_mark_resources_as_registered(struct nsdl_s *handle)
00170 {
00171 }
00172