Return to imc_swima_state.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / libimcv / plugins / imc_swima |
1.1 misho 1: /* 2: * Copyright (C) 2017 Andreas Steffen 3: * HSR Hochschule fuer Technik Rapperswil 4: * 5: * This program is free software; you can redistribute it and/or modify it 6: * under the terms of the GNU General Public License as published by the 7: * Free Software Foundation; either version 2 of the License, or (at your 8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. 9: * 10: * This program is distributed in the hope that it will be useful, but 11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13: * for more details. 14: */ 15: 16: /** 17: * @defgroup imc_swima imc_swima 18: * @ingroup libimcv_plugins 19: * 20: * @defgroup imc_swima_state_t imc_swima_state 21: * @{ @ingroup imc_swima 22: */ 23: 24: #ifndef IMC_SWIMA_STATE_H_ 25: #define IMC_SWIMA_STATE_H_ 26: 27: #include <imc/imc_state.h> 28: #include <swima/swima_inventory.h> 29: #include <library.h> 30: 31: typedef struct imc_swima_state_t imc_swima_state_t; 32: typedef struct imc_swima_subscription_t imc_swima_subscription_t; 33: 34: /** 35: * State information on subscriptions 36: */ 37: struct imc_swima_subscription_t { 38: 39: /** 40: * IMV which sent the subscription request 41: */ 42: TNC_IMVID imv_id; 43: 44: /** 45: * SWIMA Request ID 46: */ 47: uint32_t request_id; 48: 49: /** 50: * SWIMA Request targets 51: */ 52: swima_inventory_t *targets; 53: 54: /** 55: * Retrieve SW Identifiers only 56: */ 57: bool sw_id_only; 58: 59: }; 60: 61: /** 62: * Internal state of an imc_swima_t connection instance 63: */ 64: struct imc_swima_state_t { 65: 66: /** 67: * imc_state_t interface 68: */ 69: imc_state_t interface; 70: 71: /** 72: * Set or clear a subscription 73: * 74: * @param subscription state information on subscription 75: * @param set TRUE sets and FALSE clears a subscripton 76: */ 77: void (*set_subscription)(imc_swima_state_t *this, 78: imc_swima_subscription_t *subscription, bool set); 79: 80: /** 81: * Get the subscription status 82: * 83: * @param subscription state information on subscription 84: * @return TRUE if subscription is set 85: */ 86: bool (*get_subscription)(imc_swima_state_t *this, 87: imc_swima_subscription_t**subscription); 88: 89: /** 90: * Set the earliest EID for the next subscription round 91: * 92: * @param eid Earliest EID for events or 0 for inventories 93: */ 94: void (*set_earliest_eid)(imc_swima_state_t *this, uint32_t eid); 95: 96: /** 97: * Get earliest EID for the next subscription round 98: * 99: * @return Earliest EID for events or 0 for inventories 100: */ 101: uint32_t (*get_earliest_eid)(imc_swima_state_t *this); 102: }; 103: 104: /** 105: * Create an imc_swima_state_t instance 106: * 107: * @param id connection ID 108: */ 109: imc_state_t* imc_swima_state_create(TNC_ConnectionID id); 110: 111: #endif /** IMC_SWIMA_STATE_H_ @}*/