1/* 2 * Copyright 2010, Haiku Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _ATOMIZER_H 6#define _ATOMIZER_H 7 8#include <SupportDefs.h> 9#include <module.h> 10 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15 16 17#define B_ATOMIZER_MODULE_NAME "generic/atomizer/v1" 18#define B_SYSTEM_ATOMIZER_NAME "Haiku System Atomizer" 19 20 21typedef struct atomizer_info { 22 void* atomizer; 23 char name[B_OS_NAME_LENGTH]; 24 uint32 atom_count; 25} atomizer_info; 26 27 28typedef struct atomizer_module_info { 29 module_info minfo; 30 const void* (*find_or_make_atomizer)(const char* string); 31 status_t (*delete_atomizer)(const void* atomizer); 32 const void* (*atomize) 33 (const void* atomizer, const char* string, int create); 34 const char* (*string_for_token) 35 (const void* atomizer, const void* atom); 36 status_t (*get_next_atomizer_info) 37 (void** cookie, atomizer_info* info); 38 const void* (*get_next_atom)(const void* atomizer, uint32* cookie); 39} atomizer_module_info; 40 41 42#ifdef __cplusplus 43} 44#endif 45 46 47#endif /* _ATOMIZER_H */ 48