mirror of https://github.com/ARMmbed/mbed-os.git
Move Transaction.h into platform/ given there is no hardware required.
parent
7a44db8376
commit
3a714c117e
|
@ -0,0 +1,75 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2015 ARM Limited
|
||||
*
|
||||
* 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 MBED_TRANSACTION_H
|
||||
#define MBED_TRANSACTION_H
|
||||
|
||||
#include "platform.h"
|
||||
#include "FunctionPointer.h"
|
||||
|
||||
namespace mbed {
|
||||
|
||||
/** Transaction structure
|
||||
*/
|
||||
typedef struct {
|
||||
void *tx_buffer; /**< Tx buffer */
|
||||
size_t tx_length; /**< Length of Tx buffer*/
|
||||
void *rx_buffer; /**< Rx buffer */
|
||||
size_t rx_length; /**< Length of Rx buffer */
|
||||
uint32_t event; /**< Event for a transaction */
|
||||
event_callback_t callback; /**< User's callback */
|
||||
uint8_t width; /**< Buffer's word width (8, 16, 32, 64) */
|
||||
} transaction_t;
|
||||
|
||||
/** Transaction class defines a transaction.
|
||||
*
|
||||
* @Note Synchronization level: Not protected
|
||||
*/
|
||||
template<typename Class>
|
||||
class Transaction {
|
||||
public:
|
||||
Transaction(Class *tpointer, const transaction_t& transaction) : _obj(tpointer), _data(transaction) {
|
||||
}
|
||||
|
||||
Transaction() : _obj(), _data() {
|
||||
}
|
||||
|
||||
~Transaction() {
|
||||
}
|
||||
|
||||
/** Get object's instance for the transaction
|
||||
*
|
||||
* @return The object which was stored
|
||||
*/
|
||||
Class* get_object() {
|
||||
return _obj;
|
||||
}
|
||||
|
||||
/** Get the transaction
|
||||
*
|
||||
* @return The transaction which was stored
|
||||
*/
|
||||
transaction_t* get_transaction() {
|
||||
return &_data;
|
||||
}
|
||||
|
||||
private:
|
||||
Class* _obj;
|
||||
transaction_t _data;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue