2.2 KiB
2.2 KiB
NPC core
abstract class ARepository
abstract class ARepositoryFactory
class RepositoryFactory
class Repository {
+addStructure()
+removeStructure()
+getStructure()
}
abstract class AStackModelFactory
class StackModelFactory
abstract class AStackModel
class StackModel {
+getBinary():byte[]
+getStructures():Structure[]
+addStructure()
+removeStructure()
}
abstract class AStructureFactory
class StructureFactory
abstract class AStructure
class Structure {
-name
-description
-fields
-data
+putData(Field, data)
+validateData(Field, data)
+updateData()
}
abstract class AFieldFactory{
+ createField()
+ createFieldBinaryInformation()
+ createFieldLogicalInformation()
+ createFieldVisualInformation()
+ createFieldRepresentation()
}
class FieldFactory
abstract class AField
class Field {
- owningStructure
- binary
- logical
- visual
- representation
}
class RandomAccessBinary {
- binaryData
+ setBytes(uint position, std::vector<uint8_t> data)
+ setByte(uint position, uint8_t data)
+ setBit(uint64_t position, bool value)
+ setBit(uint bytePosition, uint bitPosition, bool value)
+ setBits(uint64_t position, uint bits, uint value)
+ setBits(uint bytePosition, uint bitPosition, uint bits, uint value)
+ getByte(uint position)
+ getBytes(uint position, uint bytes)
+ getBit(uint64_t position)
+ getBit(uint bytePosition, uint bitPosition)
+ getBits(uint64_t position, uint bits)
+ getBits(uint bytePosition, uint bitPosition, uint bits)
+ get_uint32(uint position)
+ get_uint16(uint position)
+ get_uint64(uint position)
+ get_float(uint position)
+ get_double(uint position)
+ get_string(uint position, uint length)
+ get_hex_string(uint position, uint length)
+ get_hex_string()
}
ARepositoryFactory <|-- RepositoryFactory
ARepository <|-- Repository
RepositoryFactory --> Repository : creates >
AStackModelFactory <|-- StackModelFactory
AStackModel <|-- StackModel
StackModelFactory --> StackModel: creates >
AStructureFactory <|-- StructureFactory
AStructure <|-- Structure
StructureFactory --> Structure : creates >
StackModel *-- Structure
Repository *-- Structure
AFieldFactory <|-- FieldFactory
AField <|-- Field
FieldFactory --> Field : creates >
Structure *-- Field
StackModel *-- "1" RandomAccessBinary