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.
Fork of mbed-src by
api/Transaction.h
- Committer:
- Bernator
- Date:
- 2015-08-16
- Revision:
- 611:8202fd9ecc58
- Parent:
- 525:c320967f86b9
File content as of revision 611:8202fd9ecc58:
/* 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. */ 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