#ifndef __kaddressbook_idl__ #define __kaddressbook_idl__ #include <openparts.idl> module KAddressBook { enum EntityType { EntityTypeEntity, EntityTypeGroup }; //forward references interface AddressBook; interface Group; interface Entity; interface Field; typedef sequence<wstring> StringList; typedef sequence<Field> FieldList; typedef wstring Key; typedef sequence<char> Data; interface Field { Key key (); wstring type (); wstring subType (); Data value (); void setKey (in Key k); void setType (in wstring t); void setSubType (in wstring t); void setValue (in Data v); }; interface Entity : KOM::Component { Key id (); wstring name (); EntityType type (); Field field (in wstring n); FieldList fieldList (); bool rename (in wstring n); bool add (in Field f); bool remove (in Field f); bool removeByName (in wstring n); }; interface Group : Entity { wstring name (); StringList members (); void addEntity (in Entity e); void addGroup (in Group g); void removeEntity (in Entity e); void removeGroup (in Group g); }; interface AddressBook { Entity entity (in Key k); Group group (in Key k); bool addEntity (in Entity e); bool addGroup (in Group g); bool addByKey (in Key k); bool remove (in Key k); bool replaceEntity (in Entity e); bool replaceGroup (in Group g); }; }; #endif