Contents of data stream are pushed and popped to demonstrate usage of CircularBuffer API's.
Fork of mbed-os-example-circular-buffer by
CircularBuffer example
This application demonstrates the CircularBuffer API. For more information about this API, please see the documentation.
main.cpp@0:6c43979d0645, 2017-10-23 (annotated)
- Committer:
- deepikabhavnani
- Date:
- Mon Oct 23 15:49:13 2017 +0000
- Revision:
- 0:6c43979d0645
Inital copy of circular buffer example
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
deepikabhavnani | 0:6c43979d0645 | 1 | /* |
deepikabhavnani | 0:6c43979d0645 | 2 | * Copyright (c) 2016-2016, ARM Limited, All Rights Reserved |
deepikabhavnani | 0:6c43979d0645 | 3 | * SPDX-License-Identifier: Apache-2.0 |
deepikabhavnani | 0:6c43979d0645 | 4 | * |
deepikabhavnani | 0:6c43979d0645 | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may |
deepikabhavnani | 0:6c43979d0645 | 6 | * not use this file except in compliance with the License. |
deepikabhavnani | 0:6c43979d0645 | 7 | * You may obtain a copy of the License at |
deepikabhavnani | 0:6c43979d0645 | 8 | * |
deepikabhavnani | 0:6c43979d0645 | 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
deepikabhavnani | 0:6c43979d0645 | 10 | * |
deepikabhavnani | 0:6c43979d0645 | 11 | * Unless required by applicable law or agreed to in writing, software |
deepikabhavnani | 0:6c43979d0645 | 12 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
deepikabhavnani | 0:6c43979d0645 | 13 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
deepikabhavnani | 0:6c43979d0645 | 14 | * See the License for the specific language governing permissions and |
deepikabhavnani | 0:6c43979d0645 | 15 | * limitations under the License. |
deepikabhavnani | 0:6c43979d0645 | 16 | */ |
deepikabhavnani | 0:6c43979d0645 | 17 | #include "mbed.h" |
deepikabhavnani | 0:6c43979d0645 | 18 | #include "platform/CircularBuffer.h" |
deepikabhavnani | 0:6c43979d0645 | 19 | |
deepikabhavnani | 0:6c43979d0645 | 20 | #define BUF_SIZE 10 |
deepikabhavnani | 0:6c43979d0645 | 21 | |
deepikabhavnani | 0:6c43979d0645 | 22 | CircularBuffer<char, BUF_SIZE> buf; |
deepikabhavnani | 0:6c43979d0645 | 23 | char data_stream[] = "DataToBeAddedToBuffer"; |
deepikabhavnani | 0:6c43979d0645 | 24 | |
deepikabhavnani | 0:6c43979d0645 | 25 | int main() |
deepikabhavnani | 0:6c43979d0645 | 26 | { |
deepikabhavnani | 0:6c43979d0645 | 27 | uint32_t bytes_written = 0; |
deepikabhavnani | 0:6c43979d0645 | 28 | |
deepikabhavnani | 0:6c43979d0645 | 29 | while (!buf.full()) { |
deepikabhavnani | 0:6c43979d0645 | 30 | buf.push(data_stream[bytes_written++]); |
deepikabhavnani | 0:6c43979d0645 | 31 | } |
deepikabhavnani | 0:6c43979d0645 | 32 | |
deepikabhavnani | 0:6c43979d0645 | 33 | printf("Circular buffer is full: \"%s\" or empty: \"%s\" \n", |
deepikabhavnani | 0:6c43979d0645 | 34 | (buf.full()? "true":"false"), |
deepikabhavnani | 0:6c43979d0645 | 35 | (buf.empty()? "true":"false") ); |
deepikabhavnani | 0:6c43979d0645 | 36 | printf ("Bytes written %d \n", bytes_written); |
deepikabhavnani | 0:6c43979d0645 | 37 | |
deepikabhavnani | 0:6c43979d0645 | 38 | // If buffer is full, contents will be over-written |
deepikabhavnani | 0:6c43979d0645 | 39 | buf.push(data_stream[bytes_written++]); |
deepikabhavnani | 0:6c43979d0645 | 40 | |
deepikabhavnani | 0:6c43979d0645 | 41 | char data; |
deepikabhavnani | 0:6c43979d0645 | 42 | printf ("Buffer contents: "); |
deepikabhavnani | 0:6c43979d0645 | 43 | while (!buf.empty()) { |
deepikabhavnani | 0:6c43979d0645 | 44 | buf.pop(data); |
deepikabhavnani | 0:6c43979d0645 | 45 | printf("%c", data); |
deepikabhavnani | 0:6c43979d0645 | 46 | } |
deepikabhavnani | 0:6c43979d0645 | 47 | printf("\n"); |
deepikabhavnani | 0:6c43979d0645 | 48 | |
deepikabhavnani | 0:6c43979d0645 | 49 | printf("Circular buffer is full: \"%s\" or empty: \"%s\" \n", |
deepikabhavnani | 0:6c43979d0645 | 50 | (buf.full()? "true":"false"), |
deepikabhavnani | 0:6c43979d0645 | 51 | (buf.empty()? "true":"false") ); |
deepikabhavnani | 0:6c43979d0645 | 52 | |
deepikabhavnani | 0:6c43979d0645 | 53 | return 0; |
deepikabhavnani | 0:6c43979d0645 | 54 | |
deepikabhavnani | 0:6c43979d0645 | 55 | } |