1 /* 2 * Copyright (C) 2016 Jakub Kruszona-Zawadzki, Core Technology Sp. z o.o. 3 * 4 * This file is part of MooseFS. 5 * 6 * MooseFS is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, version 2 (only). 9 * 10 * MooseFS is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with MooseFS; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA 18 * or visit http://www.gnu.org/licenses/gpl-2.0.html 19 */ 20 21 #ifndef _MATOCSSERV_H_ 22 #define _MATOCSSERV_H_ 23 24 #include <inttypes.h> 25 #include "chunks.h" // MAXCSCOUNT 26 27 void matocsserv_usagedifference(double *minusage,double *maxusage,uint16_t *usablescount,uint16_t *totalscount); 28 uint16_t matocsserv_almostfull_servers(void); 29 uint16_t matocsserv_getservers_ordered(uint16_t csids[MAXCSCOUNT],double maxusagediff,uint32_t *min,uint32_t *max); 30 uint16_t matocsserv_getservers_wrandom(uint16_t csids[MAXCSCOUNT],double tolerance,uint16_t demand); 31 uint16_t matocsserv_getservers_lessrepl(uint16_t csids[MAXCSCOUNT],double replimit); 32 void matocsserv_getspace(uint64_t *totalspace,uint64_t *availspace); 33 char* matocsserv_getstrip(void *e); 34 int matocsserv_get_csdata(void *e,uint32_t *servip,uint16_t *servport,uint32_t *servver); 35 void matocsserv_getservdata(void *e,uint32_t *ver,uint64_t *uspc,uint64_t *tspc,uint32_t *chunkcnt,uint64_t *tduspc,uint64_t *tdtspc,uint32_t *tdchunkcnt,uint32_t *errcnt,uint32_t *load); 36 uint8_t matocsserv_can_create_chunks(void *e,double tolerance); 37 uint8_t matocsserv_has_avail_space(void *e); 38 double matocsserv_replication_write_counter(void *e,uint32_t now); 39 double matocsserv_replication_read_counter(void *e,uint32_t now); 40 //uint16_t matocsserv_replication_read_counter(void *e); 41 //uint16_t matocsserv_replication_write_counter(void *e); 42 uint16_t matocsserv_deletion_counter(void *e); 43 int matocsserv_send_replicatechunk(void *e,uint64_t chunkid,uint32_t version,void *src); 44 int matocsserv_send_replicatechunk_xor(void *e,uint64_t chunkid,uint32_t version,uint8_t cnt,void **src,uint64_t *srcchunkid,uint32_t *srcversion); 45 int matocsserv_send_chunkop(void *e,uint64_t chunkid,uint32_t version,uint32_t newversion,uint64_t copychunkid,uint32_t copyversion,uint32_t leng); 46 int matocsserv_send_deletechunk(void *e,uint64_t chunkid,uint32_t version); 47 int matocsserv_send_createchunk(void *e,uint64_t chunkid,uint32_t version); 48 int matocsserv_send_setchunkversion(void *e,uint64_t chunkid,uint32_t version,uint32_t oldversion); 49 int matocsserv_send_duplicatechunk(void *e,uint64_t chunkid,uint32_t version,uint64_t oldchunkid,uint32_t oldversion); 50 int matocsserv_send_truncatechunk(void *e,uint64_t chunkid,uint32_t length,uint32_t version,uint32_t oldversion); 51 int matocsserv_send_duptruncchunk(void *e,uint64_t chunkid,uint32_t version,uint64_t oldchunkid,uint32_t oldversion,uint32_t length); 52 uint8_t matocsserv_isvalid(void *e); 53 void matocsserv_disconnection_finished(void *e); 54 int matocsserv_no_more_pending_jobs(void); 55 void matocsserv_disconnect_all(void); 56 int matocsserv_init(void); 57 58 #endif 59