auction.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. This file is part of GNUnet.
  3. Copyright (C) 2001-2011 GNUnet e.V.
  4. GNUnet is free software: you can redistribute it and/or modify it
  5. under the terms of the GNU Affero General Public License as published
  6. by the Free Software Foundation, either version 3 of the License,
  7. or (at your option) any later version.
  8. GNUnet is distributed in the hope that it will be useful, but
  9. WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. Affero General Public License for more details.
  12. You should have received a copy of the GNU Affero General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. SPDX-License-Identifier: AGPL3.0-or-later
  15. */
  16. /**
  17. * @author Markus Teich
  18. * @file auction/auction.h
  19. *
  20. * @brief Common type definitions for the auction service and API.
  21. */
  22. #ifndef AUCTION_H
  23. #define AUCTION_H
  24. #include "gnunet_common.h"
  25. GNUNET_NETWORK_STRUCT_BEGIN
  26. /**
  27. * Auction creation request sent from the client to the service
  28. */
  29. struct GNUNET_AUCTION_ClientCreateMessage
  30. {
  31. /**
  32. * Type: GNUNET_MESSAGE_TYPE_AUCTION_CLIENT_CREATE
  33. */
  34. struct GNUNET_MessageHeader header;
  35. /**
  36. * When should the auction start
  37. */
  38. struct GNUNET_TIME_AbsoluteNBO time_start;
  39. /**
  40. * How long is each round allowed to be maximally
  41. */
  42. struct GNUNET_TIME_RelativeNBO time_round;
  43. /**
  44. * Auction parameter m.
  45. * 0 for first price auctions.
  46. * >0 for M+1st price auctions.
  47. */
  48. uint16_t m GNUNET_PACKED;
  49. /**
  50. * Should the auction outcome be public?
  51. * 0 for private outcome auctions.
  52. * 1 for public outcome auctions.
  53. */
  54. uint16_t outcome_public GNUNET_PACKED;
  55. /**
  56. * TODO: Price mapping.
  57. */
  58. /* DESCRIPTION text copied to end of this message */
  59. };
  60. GNUNET_NETWORK_STRUCT_END
  61. #endif