Next: , Previous: LObject Overview, Up: LObject


7.3.2 LObject Example

An object derived from LObject must define its own self_pack, self_unpack, and self_name functions. Here is how they are defined for RString:

       void self_pack(LO_Packer &w)
       {
         const int32_t len = s ? occ + 1 : 0;
         w << len;
         if( len > 0 ) w.write_array_wo_length(s,len);
       }
     
       void self_unpack(LO_Packer &r)
       {
         assign_take(NULL);
         int32_t len = r;
         if( !len ) return;
         s = (char*) malloc(len);
         r.read_array_wo_length(s,len);
         occ = size = len - 1;
       }
     
       char* self_name(){ return "RString"; }