mmserv/tms/tmsapi/src/tmsclientsource.cpp
changeset 0 71ca22bcf22a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/tms/tmsapi/src/tmsclientsource.cpp	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Telephony Multimedia Service
+ *
+ */
+
+#include <tmsclientsource.h>
+#include <tmsclientsourceobsrvr.h>
+#include "tmsclientsourcebody.h"
+
+using namespace TMS;
+
+EXPORT_C TMSClientSource::TMSClientSource() :
+    iBody(NULL)
+    {
+    }
+
+EXPORT_C TMSClientSource::~TMSClientSource()
+    {
+    delete iBody;
+    }
+
+EXPORT_C gint TMSClientSource::AddObserver(TMSClientSourceObserver& obsrvr,
+        gpointer user_data)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->AddObserver(obsrvr, user_data);
+        }
+    return status;
+    }
+
+EXPORT_C gint TMSClientSource::RemoveObserver(TMSClientSourceObserver& obsrvr)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->RemoveObserver(obsrvr);
+        }
+    return status;
+    }
+
+// In pull mode, client calls this.??? How to identify last buffer.
+// Option 1 is to move setlast buffer to TMSBuffer interface.
+// Option 2 is to have overloaded function with another parameter.
+EXPORT_C gint TMSClientSource::BufferFilled(TMSBuffer& buffer)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->BufferFilled(buffer);
+        }
+    return status;
+    }
+
+// Push mode
+EXPORT_C gint TMSClientSource::ProcessBuffer(TMSBuffer* buffer)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->ProcessBuffer(buffer);
+        }
+    return status;
+    }
+
+// Indicates framework to queue ProcessBuffer. default is off
+// unsupported in pull mode??? (atleast initially)
+EXPORT_C gint TMSClientSource::SetEnqueueMode(const gboolean enable)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->SetEnqueueMode(enable);
+        }
+    return status;
+    }
+
+EXPORT_C gint TMSClientSource::GetEnqueueMode(gboolean& enable)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->GetEnqueueMode(enable);
+        }
+    return status;
+    }
+
+// Sends batch data to framework and clears queue mode.
+// Valid only when queue mode is set, otherwise no-op
+EXPORT_C gint TMSClientSource::Flush()
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->Flush();
+        }
+    return status;
+    }
+
+EXPORT_C gint TMSClientSource::GetType(TMSSourceType& sourcetype)
+    {
+    gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBody)
+        {
+        status = iBody->GetType(sourcetype);
+        }
+    return status;
+    }
+
+// End of file