Host library for controlling a WiConnect enabled Wi-Fi module.
Dependents: wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more
QueuedCommand.h
00001 /** 00002 * ACKme WiConnect Host Library is licensed under the BSD licence: 00003 * 00004 * Copyright (c)2014 ACKme Networks. 00005 * All rights reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without modification, 00008 * are permitted provided that the following conditions are met: 00009 * 00010 * 1. Redistributions of source code must retain the above copyright notice, 00011 * this list of conditions and the following disclaimer. 00012 * 2. Redistributions in binary form must reproduce the above copyright notice, 00013 * this list of conditions and the following disclaimer in the documentation 00014 * and/or other materials provided with the distribution. 00015 * 3. The name of the author may not be used to endorse or promote products 00016 * derived from this software without specific prior written permission. 00017 * 00018 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS AND ANY EXPRESS OR IMPLIED 00019 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00020 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 00021 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00022 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00023 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00024 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00025 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 00026 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 00027 * OF SUCH DAMAGE. 00028 */ 00029 #pragma once 00030 00031 00032 #include "api/WiconnectTypes.h" 00033 00034 00035 namespace wiconnect 00036 { 00037 /** 00038 * @ingroup api_core_types 00039 * 00040 * @brief Class which contains command for asynchronous processing. 00041 */ 00042 00043 class QueuedCommand 00044 { 00045 public: 00046 void *userData; 00047 00048 00049 QueuedCommand(int responseBufferLen, char *responseBuffer, int timeoutMs, const ReaderFunc &reader, void *user, const char *cmd, va_list vaList); 00050 QueuedCommand(int responseBufferLen, char *responseBuffer, int timeoutMs, const char *cmd, ...); 00051 QueuedCommand(int responseBufferLen, char *responseBuffer, const char *cmd, ...); 00052 QueuedCommand(int timeoutMs_, const char *cmd, ...); 00053 QueuedCommand(const char *cmd, ...); 00054 ~QueuedCommand(); 00055 00056 char *getResponseBuffer(); 00057 int getResponseBufferLen(); 00058 int getTimeoutMs(); 00059 ReaderFunc getReader(); 00060 void * getReaderUserData(); 00061 char* getCommand(); 00062 Callback getCompletedCallback(); 00063 void setCompletedCallback(const Callback &cb); 00064 00065 QueuedCommand& operator=( const QueuedCommand& other ); 00066 void* operator new(size_t size); 00067 void operator delete(void*); 00068 00069 protected: 00070 char *responseBuffer; 00071 int responseBufferLen; 00072 int timeoutMs; 00073 ReaderFunc reader; 00074 void *user; 00075 char command[WICONNECT_MAX_CMD_SIZE]; 00076 Callback completeCallback; 00077 #ifdef WICONNECT_ENABLE_MALLOC 00078 bool allocatedBuffer; 00079 #endif 00080 friend class NetworkInterface; 00081 friend class Wiconnect; 00082 00083 void initialize(int responseBufferLen, char *responseBuffer_, int timeoutMs_, const ReaderFunc &reader_, void *user_, const char *cmd_, va_list vaList); 00084 }; 00085 00086 00087 00088 }
Generated on Tue Jul 12 2022 17:35:58 by 1.7.2