Truxton file type create

From truxwiki.com
Jump to navigation Jump to search

This creates a file type object. You can use this to extend Truxton with new file types.

Syntax

uint64_t truxton_file_type_create( uint64_t truxton_handle );

Parameters

truxton_handle

The Truxton instance this file type will belong. This handle comes from calling truxton_create().

Return value

A handle to a file type object.

Sample

void create_file_type( void )
{
   uint64_t truxton = truxton_create();

   uint64_t file_type = truxton_file_type_create( truxton );

   truxton_file_type_set_short_name( file_type, "My Type" );
   truxton_file_type_set_id( file_type, 11111 );
   truxton_file_type_set_long_name( file_type, "A new custom type derived from XML" );
   truxton_file_type_set_parent_id( file_type, Type_XML );
   truxton_file_type_set_extension( file_type, "xm2" );
   truxton_file_type_set_mime_type( file_type, "text/xml" );

   if ( truxton_file_type_save( file_type ) == 0 )
   {
      printf( "Cannot save file type to the database.\n" );
   }

   uint64_t new_id = truxton_file_type_get_id( file_type );

   if ( new_id == 0 )
   {
      printf( "Failed to create new file type\n" );
   }
   else
   {
      printf( "Created new file type as id %" PRIu64 "\n", new_id );
   }

   truxton_file_type_destroy( file_type );
   truxton_destroy( truxton );
}

The PRIu64 in the sample code above is a standard way of formatting a 64-bit unsigned integer in C. Over the years, different compilers on different operating systems used different format specifiers for things, these PRI macros, along with some tricky string concatenation the compilers perform for you, allow you to maintain a single code base without a bunch of macro magic.