X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Farm%2Farm.h;h=6b3077bbcac7bd08cbd29d8478a72f3cb049453a;hb=688f62f7a0fcfc85a3bf611ff855edff541dc52a;hp=615079b7c324ba5da9bd2cb817a60c63a9606c79;hpb=cbd09ba94fde1331cb4fe6ea29f5f164adc8db25;p=oweals%2Fgnunet.git diff --git a/src/arm/arm.h b/src/arm/arm.h index 615079b7c..6b3077bbc 100644 --- a/src/arm/arm.h +++ b/src/arm/arm.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2009 Christian Grothoff (and other contributing authors) + Copyright (C) 2009 Christian Grothoff (and other contributing authors) GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** @@ -33,23 +33,92 @@ */ #define DEBUG_ARM GNUNET_EXTRA_LOGGING +GNUNET_NETWORK_STRUCT_BEGIN /** - * Reply from ARM to client. + * Status update from ARM to client. */ -struct GNUNET_ARM_ResultMessage +struct GNUNET_ARM_StatusMessage { /** - * Reply to client, of type is GNUNET_MESSAGE_TYPE_ARM_RESULT. + * Reply to client, of type is #GNUNET_MESSAGE_TYPE_ARM_STATUS. */ struct GNUNET_MessageHeader header; - + /** - * Status from the 'enum GNUNET_ARM_ProcessStatus' + * Status from the 'enum GNUNET_ARM_ServiceStatus' */ uint32_t status; + + /* followed by a 0-terminated service name */ +}; + +struct GNUNET_ARM_Message +{ + /** + * Reply to client, type is #GNUNET_MESSAGE_TYPE_ARM_RESULT or + * #GNUNET_MESSAGE_TYPE_ARM_LIST_RESULT. + * OR + * Request from client, type is #GNUNET_MESSAGE_TYPE_ARM_START or + * #GNUNET_MESSAGE_TYPE_ARM_STOP. + */ + struct GNUNET_MessageHeader header; + + /** + * For alignment. + */ + uint32_t reserved; + + /** + * ID of a request that is being replied to. + * OR + * ID of a request that is being sent. + */ + uint64_t request_id; + + /* For requests - followed by a 0-terminated service name */ +}; + + +/** + * Reply from ARM to client. + */ +struct GNUNET_ARM_ResultMessage +{ + + /** + * Reply to client, of type is #GNUNET_MESSAGE_TYPE_ARM_RESULT, with an ID. + */ + struct GNUNET_ARM_Message arm_msg; + + /** + * Result from the `enum GNUNET_ARM_Result` + */ + uint32_t result; +}; + +/** + * Reply from ARM to client for the + * #GNUNET_MESSAGE_TYPE_ARM_LIST request followed by count + * '\0' terminated strings. header->size contains the + * total size (including all strings). + */ +struct GNUNET_ARM_ListResultMessage +{ + /** + * Reply to client, of type is #GNUNET_MESSAGE_TYPE_ARM_LIST_RESULT, + * with an ID. + */ + struct GNUNET_ARM_Message arm_msg; + + /** + * Number of '\0' terminated strings that follow + * this message. + */ + uint16_t count; }; +GNUNET_NETWORK_STRUCT_END #endif