00001 /* 00002 Aseba - an event-based framework for distributed robot control 00003 Copyright (C) 2007--2012: 00004 Stephane Magnenat <stephane at magnenat dot net> 00005 (http://stephane.magnenat.net) 00006 and other contributors, see authors.txt for details 00007 00008 This program is free software: you can redistribute it and/or modify 00009 it under the terms of the GNU Lesser General Public License as published 00010 by the Free Software Foundation, version 3 of the License. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef ASEBA_VM_BUFFER 00022 #define ASEBA_VM_BUFFER 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 #include "../../common/types.h" 00029 #include "../../vm/vm.h" 00030 #include "../../vm/natives.h" 00031 00056 00057 // functions this helper provides 00058 00060 void AsebaProcessIncomingEvents(AsebaVMState *vm); 00061 00062 // functions this helper needs 00063 00064 extern void AsebaSendBuffer(AsebaVMState *vm, const uint8* data, uint16 length); 00065 00066 extern uint16 AsebaGetBuffer(AsebaVMState *vm, uint8* data, uint16 maxLength, uint16* source); 00067 00068 extern const AsebaVMDescription* AsebaGetVMDescription(AsebaVMState *vm); 00069 00070 extern const AsebaLocalEventDescription * AsebaGetLocalEventsDescriptions(AsebaVMState *vm); 00071 00072 extern const AsebaNativeFunctionDescription * const * AsebaGetNativeFunctionsDescriptions(AsebaVMState *vm); 00073 00076 #ifdef __cplusplus 00077 } 00078 #endif 00079 00080 #endif