66 lines
2.2 KiB
C
66 lines
2.2 KiB
C
#ifndef SIMPLEPATTERN_H_
|
|
#define SIMPLEPATTERN_H_
|
|
|
|
#include "StripePattern.h"
|
|
|
|
struct SimplePattern;
|
|
typedef struct SimplePattern SimplePattern;
|
|
|
|
|
|
static inline void SimplePattern_init(SimplePattern* this,
|
|
unsigned patternType, unsigned chunkSize);
|
|
static inline SimplePattern* SimplePattern_construct(
|
|
unsigned patternType, unsigned chunkSize);
|
|
static inline void SimplePattern_uninit(StripePattern* this);
|
|
|
|
// virtual functions
|
|
extern bool SimplePattern_deserializePattern(StripePattern* this, DeserializeCtx* ctx);
|
|
|
|
extern size_t SimplePattern_getStripeTargetIndex(StripePattern* this, int64_t pos);
|
|
extern uint16_t SimplePattern_getStripeTargetID(StripePattern* this, int64_t pos);
|
|
extern unsigned SimplePattern_getMinNumTargets(StripePattern* this);
|
|
extern unsigned SimplePattern_getDefaultNumTargets(StripePattern* this);
|
|
extern void SimplePattern_getStripeTargetIDsCopy(StripePattern* this, UInt16Vec* outTargetIDs);
|
|
extern UInt16Vec* SimplePattern_getStripeTargetIDs(StripePattern* this);
|
|
|
|
|
|
|
|
struct SimplePattern
|
|
{
|
|
StripePattern stripePattern;
|
|
};
|
|
|
|
|
|
void SimplePattern_init(SimplePattern* this,
|
|
unsigned patternType, unsigned chunkSize)
|
|
{
|
|
StripePattern_initFromPatternType( (StripePattern*)this, patternType, chunkSize);
|
|
|
|
// assign virtual functions
|
|
( (StripePattern*)this)->uninit = SimplePattern_uninit;
|
|
|
|
( (StripePattern*)this)->deserializePattern = SimplePattern_deserializePattern;
|
|
|
|
( (StripePattern*)this)->getStripeTargetIndex = SimplePattern_getStripeTargetIndex;
|
|
( (StripePattern*)this)->getStripeTargetID = SimplePattern_getStripeTargetID;
|
|
( (StripePattern*)this)->getStripeTargetIDsCopy = SimplePattern_getStripeTargetIDsCopy;
|
|
( (StripePattern*)this)->getStripeTargetIDs = SimplePattern_getStripeTargetIDs;
|
|
( (StripePattern*)this)->getMinNumTargets = SimplePattern_getMinNumTargets;
|
|
( (StripePattern*)this)->getDefaultNumTargets = SimplePattern_getDefaultNumTargets;
|
|
}
|
|
|
|
SimplePattern* SimplePattern_construct(unsigned patternType, unsigned chunkSize)
|
|
{
|
|
struct SimplePattern* this = os_kmalloc(sizeof(struct SimplePattern) );
|
|
|
|
SimplePattern_init(this, patternType, chunkSize);
|
|
|
|
return this;
|
|
}
|
|
|
|
void SimplePattern_uninit(StripePattern* this)
|
|
{
|
|
}
|
|
|
|
#endif /*SIMPLEPATTERN_H_*/
|