mbed library for slider v2

Dependents:   kl46z_slider_v2

Committer:
mturner5
Date:
Wed Sep 14 07:04:27 2016 +0000
Revision:
0:b7116bd48af6
Tried to use the timer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mturner5 0:b7116bd48af6 1 /* mbed Microcontroller Library
mturner5 0:b7116bd48af6 2 * Copyright (c) 2015 ARM Limited
mturner5 0:b7116bd48af6 3 *
mturner5 0:b7116bd48af6 4 * Licensed under the Apache License, Version 2.0 (the "License");
mturner5 0:b7116bd48af6 5 * you may not use this file except in compliance with the License.
mturner5 0:b7116bd48af6 6 * You may obtain a copy of the License at
mturner5 0:b7116bd48af6 7 *
mturner5 0:b7116bd48af6 8 * http://www.apache.org/licenses/LICENSE-2.0
mturner5 0:b7116bd48af6 9 *
mturner5 0:b7116bd48af6 10 * Unless required by applicable law or agreed to in writing, software
mturner5 0:b7116bd48af6 11 * distributed under the License is distributed on an "AS IS" BASIS,
mturner5 0:b7116bd48af6 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mturner5 0:b7116bd48af6 13 * See the License for the specific language governing permissions and
mturner5 0:b7116bd48af6 14 * limitations under the License.
mturner5 0:b7116bd48af6 15 */
mturner5 0:b7116bd48af6 16 #ifndef MBED_TRANSACTION_H
mturner5 0:b7116bd48af6 17 #define MBED_TRANSACTION_H
mturner5 0:b7116bd48af6 18
mturner5 0:b7116bd48af6 19 #include "platform.h"
mturner5 0:b7116bd48af6 20 #include "FunctionPointer.h"
mturner5 0:b7116bd48af6 21
mturner5 0:b7116bd48af6 22 namespace mbed {
mturner5 0:b7116bd48af6 23
mturner5 0:b7116bd48af6 24 /** Transaction structure
mturner5 0:b7116bd48af6 25 */
mturner5 0:b7116bd48af6 26 typedef struct {
mturner5 0:b7116bd48af6 27 void *tx_buffer; /**< Tx buffer */
mturner5 0:b7116bd48af6 28 size_t tx_length; /**< Length of Tx buffer*/
mturner5 0:b7116bd48af6 29 void *rx_buffer; /**< Rx buffer */
mturner5 0:b7116bd48af6 30 size_t rx_length; /**< Length of Rx buffer */
mturner5 0:b7116bd48af6 31 uint32_t event; /**< Event for a transaction */
mturner5 0:b7116bd48af6 32 event_callback_t callback; /**< User's callback */
mturner5 0:b7116bd48af6 33 uint8_t width; /**< Buffer's word width (8, 16, 32, 64) */
mturner5 0:b7116bd48af6 34 } transaction_t;
mturner5 0:b7116bd48af6 35
mturner5 0:b7116bd48af6 36 /** Transaction class defines a transaction.
mturner5 0:b7116bd48af6 37 *
mturner5 0:b7116bd48af6 38 * @Note Synchronization level: Not protected
mturner5 0:b7116bd48af6 39 */
mturner5 0:b7116bd48af6 40 template<typename Class>
mturner5 0:b7116bd48af6 41 class Transaction {
mturner5 0:b7116bd48af6 42 public:
mturner5 0:b7116bd48af6 43 Transaction(Class *tpointer, const transaction_t& transaction) : _obj(tpointer), _data(transaction) {
mturner5 0:b7116bd48af6 44 }
mturner5 0:b7116bd48af6 45
mturner5 0:b7116bd48af6 46 Transaction() : _obj(), _data() {
mturner5 0:b7116bd48af6 47 }
mturner5 0:b7116bd48af6 48
mturner5 0:b7116bd48af6 49 ~Transaction() {
mturner5 0:b7116bd48af6 50 }
mturner5 0:b7116bd48af6 51
mturner5 0:b7116bd48af6 52 /** Get object's instance for the transaction
mturner5 0:b7116bd48af6 53 *
mturner5 0:b7116bd48af6 54 * @return The object which was stored
mturner5 0:b7116bd48af6 55 */
mturner5 0:b7116bd48af6 56 Class* get_object() {
mturner5 0:b7116bd48af6 57 return _obj;
mturner5 0:b7116bd48af6 58 }
mturner5 0:b7116bd48af6 59
mturner5 0:b7116bd48af6 60 /** Get the transaction
mturner5 0:b7116bd48af6 61 *
mturner5 0:b7116bd48af6 62 * @return The transaction which was stored
mturner5 0:b7116bd48af6 63 */
mturner5 0:b7116bd48af6 64 transaction_t* get_transaction() {
mturner5 0:b7116bd48af6 65 return &_data;
mturner5 0:b7116bd48af6 66 }
mturner5 0:b7116bd48af6 67
mturner5 0:b7116bd48af6 68 private:
mturner5 0:b7116bd48af6 69 Class* _obj;
mturner5 0:b7116bd48af6 70 transaction_t _data;
mturner5 0:b7116bd48af6 71 };
mturner5 0:b7116bd48af6 72
mturner5 0:b7116bd48af6 73 }
mturner5 0:b7116bd48af6 74
mturner5 0:b7116bd48af6 75 #endif