Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
evolution-mono-providers
sharepoint-tasks.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File sharepoint-tasks.diff of Package evolution-mono-providers
diff --git a/calendar/backends/sharepoint/BackGroundWorker.cs b/calendar/backends/sharepoint/BackGroundWorker.cs index b84e228..d0d2055 100644 --- a/calendar/backends/sharepoint/BackGroundWorker.cs +++ b/calendar/backends/sharepoint/BackGroundWorker.cs @@ -32,8 +32,12 @@ namespace SharePoint get {return running;} } - private void GetCalendarEvents () + private void GetCalendarItems () { + + if (spBackend.authenticated == false) + return; + string timestamp = spBackend.cache.ServerUtcTime; Novell.IceDesktop.IDaemon deskIceDaemon = DaemonConnection.deskIceDaemon; @@ -74,6 +78,7 @@ namespace SharePoint spBackend.cache.PutComponent (comp); + Console.WriteLine (comp.GetAsString ()); if (cacheComp == null) spBackend.backend.NotifyObjectCreated (comp.GetAsString ()); @@ -133,8 +138,7 @@ namespace SharePoint Thread.Sleep (32); do { - if (spBackend.backend.Kind == IcalcomponentKind.VeventComponent) - GetCalendarEvents (); + GetCalendarItems (); if (shutdown == false) { diff --git a/calendar/backends/sharepoint/DaemonConnection.cs b/calendar/backends/sharepoint/DaemonConnection.cs index 6001365..93e5c85 100644 --- a/calendar/backends/sharepoint/DaemonConnection.cs +++ b/calendar/backends/sharepoint/DaemonConnection.cs @@ -1,6 +1,7 @@ using System; using NDesk.DBus; using Novell.IceDesktop; +using EDS.Backends; namespace SharePoint { @@ -10,106 +11,84 @@ namespace SharePoint static ObjectPath DaemonPath = new ObjectPath (Novell.IceDesktop.ServiceName.DaemonPath); static string DaemonNamespace = Novell.IceDesktop.ServiceName.DaemonNamespace; static readonly string conLocker = "lockr"; - static bool initiated = false; + static bool busInitiated = false; static readonly string busLocker = "lockr"; - SharePointBackend spBackend; - + public static Novell.IceDesktop.IDaemon deskIceDaemon = null; - public DaemonConnection (SharePointBackend backend) + public DaemonConnection () { - spBackend = backend; } - public void ConnectToDaemon () + public static void ConnectToDaemon () { lock (conLocker) - { - - if (deskIceDaemon != null) + { + if (deskIceDaemon != null && deskIceDaemon.Ping ()) return; - + InitDBus (); + + ConnectToICEcoreDaemon (); + sessionBus = Bus.Session.GetObject<org.freedesktop.DBus.IBus> ( "org.freedesktop.DBus", new ObjectPath ("/org/freedesktop/DBus")); - //sessionBus.NameOwnerChanged += OnDBusNameOwnerChanged; // Force the daemon to start up if it's not already running if (Bus.Session.NameHasOwner (DaemonNamespace) == false) { Bus.Session.StartServiceByName (DaemonNamespace); } - ConnectToICEcoreDaemon (); - + sessionBus.NameOwnerChanged += OnDBusNameOwnerChanged; } } - void OnAuthenticated (string server, string username) + /// <summary> + /// Connect with the ICEcore Daemon and register event handlers. + /// </summary> + static void ConnectToICEcoreDaemon () { - this.spBackend.readOnly = false; + deskIceDaemon = + Bus.Session.GetObject<IDaemon> (DaemonNamespace, DaemonPath); } - void OnDisconnected (string server, string username) - { - this.spBackend.readOnly = true; - - AccountInfo aInfo = deskIceDaemon.GetDefaultAccountInfo (); - this.spBackend.hostUrl = aInfo.hostUrl; - } - - void OnDBusNameOwnerChanged (string serviceName, + static void OnDBusNameOwnerChanged (string serviceName, string oldOwner, string newOwner) { try { - Console.WriteLine ("O/p {0} {1}", serviceName, DaemonNamespace); - - if (serviceName == null) - return; - if (serviceName.CompareTo (DaemonNamespace) != 0) - return; - Console.WriteLine ("Navigator detected Daemon Going up/down"); - - if (oldOwner != null && oldOwner.Length > 0) { - // The daemon just went away - // TODO: What should the Navigator do if the ICEcore Daemon suddenly exits? - Console.WriteLine ("TODO: What should the Navigator do if the ICEcore Daemon suddenly exits?"); - } else { - // Connect to the new instance of the daemon - ConnectToICEcoreDaemon (); - } + Console.WriteLine ("O/p {0} {1}", serviceName, DaemonNamespace); + + if (serviceName == null) + return; + if (serviceName.CompareTo (DaemonNamespace) != 0) + return; + + if (oldOwner != null && oldOwner.Length > 0) { + // The daemon just went away + // TODO: What should the Navigator do if the ICEcore Daemon suddenly exits? + Console.WriteLine ("TODO: What should the Navigator do if the ICEcore Daemon suddenly exits?"); + } else { + // Connect to the new instance of the daemon + ConnectToICEcoreDaemon (); + } } catch {} + } static void InitDBus () { lock (busLocker) { - if (initiated == false) + if (busInitiated == false) { BusG.Init (); - Console.WriteLine ("Bus inited "); } - initiated = true; + busInitiated = true; } } - - /// <summary> - /// Connect with the ICEcore Daemon and register event handlers. - /// </summary> - void ConnectToICEcoreDaemon () - { - Console.WriteLine ("Connecting the navigator to the ICEcore Daemon"); - // Check DBus to see if the Daemon is currently running - deskIceDaemon = - Bus.Session.GetObject<IDaemon> (DaemonNamespace, DaemonPath); - // Set up the daemon event handlers - deskIceDaemon.Authenticated += OnAuthenticated; - deskIceDaemon.Disconnected += OnDisconnected; - } - } -} \ No newline at end of file +} diff --git a/calendar/backends/sharepoint/Makefile.am b/calendar/backends/sharepoint/Makefile.am index 1636b55..b439a60 100644 --- a/calendar/backends/sharepoint/Makefile.am +++ b/calendar/backends/sharepoint/Makefile.am @@ -6,7 +6,8 @@ ASSEMBLY = $(ASSEMBLY_NAME).dll @BACKEND_RULE@ -CSFILES = DaemonConnection.cs BackGroundWorker.cs Sharepoint.cs SharepointCal.cs SharepointAbstractBackend.cs +CSFILES = DaemonConnection.cs BackGroundWorker.cs Sharepoint.cs SharepointCal.cs SharepointAbstractBackend.cs SharepointTask.cs + EXTRA_DIST = sharepoint-backend-config.backend.xml $(CSFILES) ASSEMBLIES = \ diff --git a/calendar/backends/sharepoint/Sharepoint.cs b/calendar/backends/sharepoint/Sharepoint.cs index 8adab37..259c8a2 100644 --- a/calendar/backends/sharepoint/Sharepoint.cs +++ b/calendar/backends/sharepoint/Sharepoint.cs @@ -18,6 +18,7 @@ namespace SharePoint { static readonly string baseUri = "sharepoint://"; #endregion + #region Public members @@ -30,6 +31,7 @@ namespace SharePoint { public string workspaceid; public string folderid; public bool readOnly; + public bool authenticated; // This is just used for common backend operations public SharePointAbstractBackend absBackend; @@ -47,11 +49,32 @@ namespace SharePoint { hostUrl = null; absBackend = null; readOnly = true; + authenticated = false; Console.WriteLine ("constructor called"); } #endregion + #region Private methods + BackendStatus CheckForRemoteOp + { + get + { + if (mode == CalMode.Local) + return BackendStatus.RepositoryOffline; + + if (authenticated == false) + return BackendStatus.AuthenticationRequired; + + if (readOnly) + return BackendStatus.PermissionDenied; + + return BackendStatus.Success; + } + } + #endregion + + #region Authentication public BackendStatus BackendOpen (IntPtr raw, bool if_exists, string username, string password) @@ -60,64 +83,95 @@ namespace SharePoint { if (loaded == true) return BackendStatus.Success; - Console.WriteLine ("Opening calendar"); - backend = new CalBackend (raw); - Evolution.Source source = backend.Source; - string user = source.GetSourceProperty ("username"); - workspaceid = source.GetSourceProperty ("workspaceid"); - folderid = source.GetSourceProperty ("Id"); - if (mode == CalMode.Remote) { try { - DaemonConnection con = new DaemonConnection (this); - con.ConnectToDaemon (); + DaemonConnection.ConnectToDaemon (); + DaemonConnection.deskIceDaemon.Authenticated += OnAuthenticated; + DaemonConnection.deskIceDaemon.Disconnected += OnDisconnected; try { DaemonConnection.deskIceDaemon.CheckAuthentication (String.Empty); + authenticated = true; readOnly = false; AccountInfo aInfo = DaemonConnection.deskIceDaemon.GetDefaultAccountInfo (); hostUrl = aInfo.hostUrl; + } catch (Exception ex) + { + NotAuthenticatedException nax = new NotAuthenticatedException (); + + if (ex.Message.Contains (nax.Message)) + readOnly = true; + else + { + Console.WriteLine ("Open calendar " + ex.Message); + Console.WriteLine (ex.StackTrace); + return BackendStatus.OtherError; + } } - catch (NotAuthenticatedException) {readOnly = true;} - } + catch (Exception ex) { - Console.WriteLine (ex.Message); + Console.WriteLine ("open calendar" + ex.Message); Console.WriteLine (ex.StackTrace); return BackendStatus.OtherError; } } + if (backend == null) + backend = new CalBackend (raw); + + Evolution.Source source = backend.Source; + string user = source.GetSourceProperty ("username"); + workspaceid = source.GetSourceProperty ("workspaceid"); + folderid = source.GetSourceProperty ("Id"); + string cacheUri = backend.Uri + source.Name; - cache = new CalBackendCache (cacheUri, CalSourceType.Event); + if (backend.Kind == IcalcomponentKind.VeventComponent) + cache = new CalBackendCache (cacheUri, CalSourceType.Event); + else + cache = new CalBackendCache (cacheUri, CalSourceType.Todo); + if (cache == null) return BackendStatus.OtherError; if (backend.Kind == IcalcomponentKind.VeventComponent) { absBackend = new SharePoint.SharePointCalBackend (this); - } + } else if (backend.Kind == IcalcomponentKind.VtodoComponent) + absBackend = new SharePoint.SharePointTaskBackend (this); loaded = true; - return BackendStatus.Success; } - #endregion - - #region Backend properties - - public BackendStatus BackendRemove () + void OnDisconnected (string server, string username) { - return BackendStatus.PermissionDenied; + readOnly = true; + authenticated = false; + backend.NotifyReadonly (readOnly); + } + + void OnAuthenticated (string server, string username) + { + authenticated = true; + readOnly = false; + backend.NotifyReadonly (readOnly); + + AccountInfo aInfo = DaemonConnection.deskIceDaemon.GetDefaultAccountInfo (); + hostUrl = aInfo.hostUrl; } + #endregion + + + #region Backend properties + public BackendStatus BackendIsReadonly (out bool ret) { ret = readOnly; @@ -133,6 +187,11 @@ namespace SharePoint { public void BackendSetMode (CalMode calMode) { mode = calMode; + + if (mode == CalMode.Remote) + readOnly = false; + else + readOnly = true; } public bool BackendIsLoaded () @@ -159,35 +218,47 @@ namespace SharePoint { public BackendStatus BackendCreateObject (ref string calobj, out string uid) { - string id = null; + uid = null; + BackendStatus status; - BackendStatus status = absBackend.BackendCreateObject (ref calobj, out id); - uid = id; + status = CheckForRemoteOp; + + if (status != BackendStatus.Success) + return status; + + status = absBackend.BackendCreateObject (ref calobj, out uid); return status; } public BackendStatus BackendModifyObject (string calobj, CalObjModType mod, out string oldObject, out string newObject) { - string old = null; - string obj = null; + oldObject = null; + newObject = null; + BackendStatus status; - BackendStatus status = absBackend.BackendModifyObject (calobj, mod, out old, out obj); - - oldObject = old; - newObject = obj; + status = CheckForRemoteOp; + + if (status != BackendStatus.Success) + return status; + + status = absBackend.BackendModifyObject (calobj, mod, out oldObject, out newObject); return status; } public BackendStatus BackendRemoveObject (string uid, string rid, CalObjModType mod, out string oldObject, out string calobj) { - string old = null; - string obj = null; - - BackendStatus status = absBackend.BackendRemoveObject (uid, rid, mod, out old, out obj); - oldObject = old; - calobj = obj; + oldObject = null; + calobj = null; + BackendStatus status; + + status = CheckForRemoteOp; + + if (status != BackendStatus.Success) + return status; + + status = absBackend.BackendRemoveObject (uid, rid, mod, out oldObject, out calobj); return status; } @@ -242,6 +313,13 @@ namespace SharePoint { Console.WriteLine (ex.StackTrace); } } + + + public BackendStatus BackendRemove () + { + return BackendStatus.PermissionDenied; + } + #endregion diff --git a/calendar/backends/sharepoint/SharepointCal.cs b/calendar/backends/sharepoint/SharepointCal.cs index 322492c..529cfc4 100644 --- a/calendar/backends/sharepoint/SharepointCal.cs +++ b/calendar/backends/sharepoint/SharepointCal.cs @@ -52,12 +52,6 @@ namespace SharePoint { uid = null; - if (spBackend.readOnly) - return BackendStatus.PermissionDenied; - - if (spBackend.mode == CalMode.Local) - return BackendStatus.RepositoryOffline; - string[] comps = new string [1]; comps [0] = calobj; @@ -88,17 +82,12 @@ namespace SharePoint oldObject = null; newObject = null; - - if (spBackend.readOnly) - return BackendStatus.PermissionDenied; - - if (spBackend.mode == CalMode.Local) - return BackendStatus.RepositoryOffline; CalComponent comp = new CalComponent (calobj); if (comp.HasRRules || comp.IsInstance) return BackendStatus.UnsupportedMethod; + CalComponent cacheComp = spBackend.cache.GetComponent (comp.Uid, comp.RecurId); string cacheStr = cacheComp.GetAsString (); @@ -108,6 +97,7 @@ namespace SharePoint { status = DaemonConnection.deskIceDaemon.ModifyCalendarItem (spBackend.workspaceid, spBackend.folderid, calobj, cacheStr); + spBackend.cache.PutComponent (comp); } catch (Exception ex) { @@ -130,13 +120,6 @@ namespace SharePoint { oldObject = null; calobj = null; - - if (spBackend.readOnly) - return BackendStatus.PermissionDenied; - - if (spBackend.mode == CalMode.Local) - return BackendStatus.RepositoryOffline; - if (String.IsNullOrEmpty (rid) == false) return BackendStatus.UnsupportedMethod; diff --git a/calendar/backends/sharepoint/SharepointTask.cs b/calendar/backends/sharepoint/SharepointTask.cs new file mode 100644 index 0000000..aa0bfeb --- /dev/null +++ b/calendar/backends/sharepoint/SharepointTask.cs @@ -0,0 +1,158 @@ +using System; +using Evolution; +using Novell.IceDesktop; +using System.Collections.Generic; + +namespace SharePoint +{ + public class SharePointTaskBackend : SharePointAbstractBackend + { + BackendGroundWorker bgw; + + public SharePointTaskBackend (SharePointBackend backend) : base (backend) + { + bgw = new BackendGroundWorker (spBackend); + } + + public override void BackendStartQuery (IntPtr query, string sexp) + { + + if (bgw.Running == false) + bgw.Start (60); + + string [] comps = BackendGetObjectList (sexp); + Console.WriteLine ("Gettting tasks " + bgw.Running); + + GLib.List objects = new GLib.List (null); + foreach (string comp in comps) + { + objects.Append (comp); + } + + spBackend.backend.NotifyObjectsAdded (query, objects); + } + + public override string[] BackendGetObjectList (string sexp) + { + CalBackendSExp backendSexp = new CalBackendSExp (sexp); + List<string> compList = new List<string> (); + + CalComponent[] comps = spBackend.cache.Components; + + foreach (CalComponent comp in comps) + { + if (backendSexp.MatchObject (comp, spBackend.backend)) + compList.Add (comp.GetAsString ()); + } + + return compList.ToArray (); + + } + + public override BackendStatus BackendCreateObject (ref string calobj, out string uid) + { + uid = null; + + string[] comps = new string [1]; + comps [0] = calobj; + + CalComponentStatus[] status = null; + + status = DaemonConnection.deskIceDaemon.CreateCalendarItems (spBackend.workspaceid, spBackend.folderid, comps); + + if (status [0].errorCode == 0) + { + calobj = status [0].compStr; + + CalComponent comp = new CalComponent (calobj); + spBackend.cache.PutComponent (comp); + + return BackendStatus.Success; + } + else + { + calobj = null; + uid = null; + + return BackendStatus.OtherError; + } + } + + public override BackendStatus BackendModifyObject (string calobj, CalObjModType mod, out string oldObject, out string newObject) + { + + oldObject = null; + newObject = null; + + return BackendStatus.UnsupportedMethod; + + CalComponent comp = new CalComponent (calobj); + + CalComponent cacheComp = spBackend.cache.GetComponent (comp.Uid, comp.RecurId); + + string cacheStr = cacheComp.GetAsString (); + CalComponentStatus status; + + try + { + status = DaemonConnection.deskIceDaemon.ModifyCalendarItem (spBackend.workspaceid, + spBackend.folderid, calobj, cacheStr); + } + catch (Exception ex) + { + Console.WriteLine ("error Deleting " + ex.Message); + return BackendStatus.OtherError; + } + + if (status.errorCode == 0) + { + oldObject = cacheStr; + newObject = status.compStr; + + return BackendStatus.Success; + } + + return BackendStatus.OtherError; + } + + public override BackendStatus BackendRemoveObject (string uid, string rid, CalObjModType mod, out string oldObject, out string calobj) + { + oldObject = null; + calobj = null; + + if (String.IsNullOrEmpty (rid) == false) + return BackendStatus.UnsupportedMethod; + + CalComponent comp = spBackend.cache.GetComponent (uid, rid); + + string[] ids = new string [1]; + string id = null; + if (comp.IsInstance) + id = comp.GetXProp ("X-SP-INSTANCE-UID"); + else + id = comp.Uid; + + ids [0] = id; + uint [] errorCodes = null; + + try + { + errorCodes = DaemonConnection.deskIceDaemon.DeleteCalendarItems (spBackend.workspaceid, + spBackend.folderid, ids); + } + catch (Exception ex) + { + Console.WriteLine (ex.Message); + return BackendStatus.OtherError; + } + + if (errorCodes [0] == 0) + { + spBackend.cache.RemoveComponent (uid, rid); + oldObject = comp.GetAsString (); + return BackendStatus.Success; + } else + return BackendStatus.OtherError; + } + } +} \ No newline at end of file diff --git a/calendar/backends/sharepoint/sharepoint-backend-config.backend.xml b/calendar/backends/sharepoint/sharepoint-backend-config.backend.xml index 9d2be5f..ac4e397 100644 --- a/calendar/backends/sharepoint/sharepoint-backend-config.backend.xml +++ b/calendar/backends/sharepoint/sharepoint-backend-config.backend.xml @@ -3,5 +3,7 @@ <backend type="event" location="@BACKENDDIR@/SharePoint.dll" namespace="SharePoint" classname="SharePointBackend" protocol="sharepoint"> </backend> +<backend type="todo" location="@BACKENDDIR@/SharePoint.dll" namespace="SharePoint" classname="SharePointBackend" protocol="sharepoint"> +</backend> </backend-list> diff --git a/calendar/backends/sharepoint/sharepoint.mdp b/calendar/backends/sharepoint/sharepoint.mdp new file mode 100644 index 0000000..340f55d --- /dev/null +++ b/calendar/backends/sharepoint/sharepoint.mdp @@ -0,0 +1,30 @@ +<Project name="sharepoint" fileversion="2.0" language="C#" clr-version="Net_2_0" ctype="DotNetProject"> + <Configurations active="Debug"> + <Configuration name="Debug" ctype="DotNetProjectConfiguration"> + <Output directory="bin/Debug" assembly="sharepoint" /> + <Build debugmode="True" target="Exe" /> + <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> + <CodeGeneration compiler="Mcs" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="False" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> + </Configuration> + <Configuration name="Release" ctype="DotNetProjectConfiguration"> + <Output directory="bin/Release" assembly="sharepoint" /> + <Build debugmode="False" target="Exe" /> + <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" /> + <CodeGeneration compiler="Mcs" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="False" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> + </Configuration> + </Configurations> + <Contents> + <File name="BackGroundWorker.cs" subtype="Code" buildaction="Compile" /> + <File name="DaemonConnection.cs" subtype="Code" buildaction="Compile" /> + <File name="Sharepoint.cs" subtype="Code" buildaction="Compile" /> + <File name="SharepointAbstractBackend.cs" subtype="Code" buildaction="Compile" /> + <File name="SharepointCal.cs" subtype="Code" buildaction="Compile" /> + <File name="SharepointTask.cs" subtype="Code" buildaction="Compile" /> + </Contents> + <References> + <ProjectReference type="Gac" localcopy="True" refto="evolution-sharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c46a23b774189844" /> + <ProjectReference type="Gac" localcopy="True" refto="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" /> + <ProjectReference type="Assembly" localcopy="True" refto="../../factory/interface/Backend.dll" /> + <ProjectReference type="Assembly" localcopy="True" refto="../../../../../../../../usr/lib/dice/Novell.IceDesktop.dll" /> + </References> +</Project> \ No newline at end of file diff --git a/calendar/backends/sharepoint/sharepoint.mds b/calendar/backends/sharepoint/sharepoint.mds new file mode 100644 index 0000000..e6e7724 --- /dev/null +++ b/calendar/backends/sharepoint/sharepoint.mds @@ -0,0 +1,16 @@ +<Combine name="sharepoint" fileversion="2.0"> + <Configurations active="Debug"> + <Configuration name="Debug" ctype="CombineConfiguration"> + <Entry build="True" name="sharepoint" configuration="Debug" /> + </Configuration> + <Configuration name="Release" ctype="CombineConfiguration"> + <Entry build="True" name="sharepoint" configuration="Release" /> + </Configuration> + </Configurations> + <StartMode startupentry="sharepoint" single="True"> + <Execute type="None" entry="sharepoint" /> + </StartMode> + <Entries> + <Entry filename="sharepoint.mdp" /> + </Entries> +</Combine> \ No newline at end of file diff --git a/calendar/backends/sharepoint/sharepoint.userprefs b/calendar/backends/sharepoint/sharepoint.userprefs new file mode 100644 index 0000000..7dd203a --- /dev/null +++ b/calendar/backends/sharepoint/sharepoint.userprefs @@ -0,0 +1,27 @@ +<Properties> + <MonoDevelop.Ide.Workbench ActiveDocument="SharepointCal.cs" ctype="Workbench"> + <Files> + <File FileName="Welcome" /> + <File FileName="SharepointTask.cs" Line="87" Column="43" /> + <File FileName="BackGroundWorker.cs" Line="35" Column="32" /> + <File FileName="SharepointCal.cs" Line="101" Column="41" /> + </Files> + <Pads> + <Pad Id="ProjectPad"> + <State expanded="True"> + <Node name="sharepoint" expanded="True"> + <Node name="References" expanded="True" /> + <Node name="SharepointCal.cs" selected="True" /> + </Node> + </State> + </Pad> + <Pad Id="ClassPad"> + <State expanded="True" /> + </Pad> + </Pads> + </MonoDevelop.Ide.Workbench> + <MonoDevelop.Ide.DebuggingService> + <BreakpointStore /> + </MonoDevelop.Ide.DebuggingService> + <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" ctype="Workspace" /> +</Properties> \ No newline at end of file diff --git a/calendar/backends/sharepoint/sharepoint.usertasks b/calendar/backends/sharepoint/sharepoint.usertasks new file mode 100644 index 0000000..d887d0e --- /dev/null +++ b/calendar/backends/sharepoint/sharepoint.usertasks @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<ArrayOfUserTask xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /> \ No newline at end of file diff --git a/calendar/factory/e-cal-backend-mono-factory.c b/calendar/factory/e-cal-backend-mono-factory.c index 417be04..0451b41 100644 --- a/calendar/factory/e-cal-backend-mono-factory.c +++ b/calendar/factory/e-cal-backend-mono-factory.c @@ -294,7 +294,7 @@ eds_module_initialize (GTypeModule *module) c_protocols = g_slist_prepend (c_protocols, info->protocol); else if (strcmp (info->type, "journal") == 0) j_protocols = g_slist_prepend (j_protocols, info->protocol); - else if (strcmp (info->type, "tasks") == 0) + else if (strcmp (info->type, "todo") == 0) t_protocols = g_slist_prepend (t_protocols, info->protocol); else g_assert_not_reached (); diff --git a/calendar/factory/e-cal-backend-mono.c b/calendar/factory/e-cal-backend-mono.c index 4e249ab..e2d3786 100644 --- a/calendar/factory/e-cal-backend-mono.c +++ b/calendar/factory/e-cal-backend-mono.c @@ -193,7 +193,6 @@ e_cal_backend_mono_open (ECalBackendSync *backend, EDataCal *cal, gboolean only_ r = mono_loader_method_invoke (method, priv->this, args); result = *(int *) mono_object_unbox (r); - g_print ("Uri of backend after is %s %p \n", e_cal_backend_get_uri (backend), backend); return result; } diff --git a/calendar/factory/interface/Logger.cs b/calendar/factory/interface/Logger.cs new file mode 100644 index 0000000..d534c64 --- /dev/null +++ b/calendar/factory/interface/Logger.cs @@ -0,0 +1,169 @@ +//*********************************************************************** +// * $RCSfile$ - Logger.cs +// * +// * Copyright (C) 2007 Novell, Inc. +// * +// * This program is free software; you can redistribute it and/or +// * modify it under the terms of the GNU General Public +// * License as published by the Free Software Foundation; either +// * version 2 of the License, or (at your option) any later version. +// * +// * This program is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public +// * License along with this program; if not, write to the Free +// * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// * +// ********************************************************************** + +using System; +using System.IO; + +namespace EDS.Backends +{ + public enum LogLevel { Debug, Info, Warn, Error, Fatal }; + + public interface ILogger + { + void Log (LogLevel lvl, string message, params object[] args); + } + + class NullLogger : ILogger + { + public void Log (LogLevel lvl, string msg, params object[] args) + { + } + } + + class ConsoleLogger : ILogger + { + public void Log (LogLevel lvl, string msg, params object[] args) + { + msg = string.Format ("[{0}]: {1}", Enum.GetName (typeof (LogLevel), lvl), msg); + Console.WriteLine (msg, args); + } + } + + class FileLogger : ILogger + { + StreamWriter log; + ConsoleLogger console; + + public FileLogger () + { + try + { + string logPath = + String.Format ( + "{0}{1}{2}", + Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData), + Path.DirectorySeparatorChar.ToString (), + "evolution-data-server-mono"); + + if (Directory.Exists (logPath) == false) Directory.CreateDirectory (logPath); + Console.WriteLine (logPath); + + log = File.CreateText (Path.Combine (logPath, "evolution-data-server-mono.log")); + log.Flush (); + } + catch (IOException flex) + { + // FIXME: Use temp file + Console.WriteLine ("failed creating log file"); + Console.WriteLine (flex.Message); + } + + console = new ConsoleLogger (); + } + + ~FileLogger () + { + if (log != null) + log.Flush (); + } + + public void Log (LogLevel lvl, string msg, params object[] args) + { + console.Log (lvl, msg, args); + + if (log != null) { + msg = string.Format ("{0} [{1}]: {2}", + DateTime.Now.ToString(), + Enum.GetName (typeof (LogLevel), lvl), + msg); + log.WriteLine (msg, args); + log.Flush(); + } + } + } + + // <summary> + // This class provides a generic logging facility. By default all + // information is written to standard out and a log file, but other + // loggers are pluggable. + // </summary> + public static class Logger + { + private static LogLevel logLevel = LogLevel.Debug; + + static ILogger logDev = new FileLogger (); + + static bool muted = false; + + public static LogLevel LogLevel + { + get { return logLevel; } + set { logLevel = value; } + } + + public static ILogger LogDevice + { + get { return logDev; } + set { logDev = value; } + } + + public static void Debug (string msg, params object[] args) + { + Log (LogLevel.Debug, msg, args); + } + + public static void Info (string msg, params object[] args) + { + Log (LogLevel.Info, msg, args); + } + + public static void Warn (string msg, params object[] args) + { + Log (LogLevel.Warn, msg, args); + } + + public static void Error (string msg, params object[] args) + { + Log (LogLevel.Error, msg, args); + } + + public static void Fatal (string msg, params object[] args) + { + Log (LogLevel.Fatal, msg, args); + } + + public static void Log (LogLevel lvl, string msg, params object[] args) + { + if (!muted && lvl >= logLevel) + logDev.Log (lvl, msg, args); + } + + public static void Mute () + { + muted = true; + } + + public static void Unmute () + { + muted = false; + } + } +} diff --git a/calendar/factory/interface/Makefile.am b/calendar/factory/interface/Makefile.am index f18c373..269d7d7 100644 --- a/calendar/factory/interface/Makefile.am +++ b/calendar/factory/interface/Makefile.am @@ -6,7 +6,7 @@ ASSEMBLY = $(ASSEMBLY_NAME).dll CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb -CSFILES = IBackend.cs +CSFILES = IBackend.cs Logger.cs ASSEMBLIES = \ -r:System \ diff --git a/configure.in b/configure.in index 8096fb7..27ef914 100644 --- a/configure.in +++ b/configure.in @@ -48,7 +48,7 @@ dnl ************************* dnl CFLAGS and LIBS and stuff dnl ************************* -GNOME_COMPILE_WARNINGS(maximum) +GNOME_COMPILE_WARNINGS(yes) CFLAGS="$CFLAGS $WARN_CFLAGS" case $CFLAGS in *-Wall*) diff --git a/loader/mono-loader.c b/loader/mono-loader.c index 2d7f75a..1785ef3 100644 --- a/loader/mono-loader.c +++ b/loader/mono-loader.c @@ -45,10 +45,10 @@ load_xml (const char *filename, GSList **m_backends) } root = xmlDocGetRootElement (doc); - minfo = g_new0 (MonoBackendInfo, 1); for (root= root->children; root; root = root->next) { if (strcmp ((char *) root->name, "backend") == 0) { + minfo = g_new0 (MonoBackendInfo, 1); minfo->protocol = get_xml_prop (root, "protocol"); minfo->type = get_xml_prop (root, "type");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor