00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <opensync/opensync.h>
00023 #include <opensync/opensync-group.h>
00024
00025 #include "group.h"
00026 #include "result.h"
00027
00028 #include "groupenv.h"
00029
00030 using namespace QSync;
00031
00032 GroupEnv::GroupEnv()
00033 {
00034 OSyncError *error = 0;
00035 mGroupEnv = osync_group_env_new( &error );
00036 }
00037
00038 GroupEnv::~GroupEnv()
00039 {
00040 osync_group_env_free( mGroupEnv );
00041 }
00042
00043 Result GroupEnv::initialize()
00044 {
00045 Q_ASSERT( mGroupEnv );
00046
00047 OSyncError *error = 0;
00048 if ( !osync_group_env_load_groups( mGroupEnv, NULL, &error ) )
00049 return Result( &error );
00050 else
00051 return Result();
00052 }
00053
00054 void GroupEnv::finalize()
00055 {
00056 }
00057
00058 int GroupEnv::groupCount() const
00059 {
00060 Q_ASSERT( mGroupEnv );
00061
00062 return osync_group_env_num_groups( mGroupEnv );
00063 }
00064
00065 Group GroupEnv::groupAt( int pos ) const
00066 {
00067 Q_ASSERT( mGroupEnv );
00068
00069 Group group;
00070
00071 if ( pos < 0 || pos >= groupCount() )
00072 return group;
00073
00074 OSyncGroup *ogroup = osync_group_env_nth_group( mGroupEnv, pos );
00075 group.mGroup = ogroup;
00076
00077 return group;
00078 }
00079
00080 Group GroupEnv::groupByName( const TQString &name ) const
00081 {
00082 Q_ASSERT( mGroupEnv );
00083
00084 Group group;
00085
00086 OSyncGroup *ogroup = osync_group_env_find_group( mGroupEnv, name.latin1() );
00087 if ( ogroup )
00088 group.mGroup = ogroup;
00089
00090 return group;
00091 }
00092
00093 Group GroupEnv::addGroup( const TQString &name )
00094 {
00095 Q_ASSERT( mGroupEnv );
00096
00097 Group group;
00098 OSyncError *error = 0;
00099
00100 OSyncGroup *ogroup = osync_group_new( &error );
00101 if ( ogroup )
00102 group.mGroup = ogroup;
00103
00104 group.setName( name );
00105
00106 if ( !osync_group_env_add_group( mGroupEnv, ogroup, &error ) ) {
00107 Result res( &error );
00108 qDebug( "Error on adding group: %s", res.message().latin1() );
00109 }
00110
00111 return group;
00112 }
00113
00114 void GroupEnv::removeGroup( const Group &group )
00115 {
00116 Q_ASSERT( mGroupEnv );
00117
00118 group.cleanup();
00119
00120 osync_group_env_remove_group( mGroupEnv, group.mGroup );
00121 }