TnyMimePartSaver

TnyMimePartSaver — A type for saving a mime part

Synopsis




                    TnyMimePartSaver;
                    TnyMimePartSaverIface;
TnyMimePartSaveStrategy* tny_mime_part_saver_get_save_strategy
                                                        (TnyMimePartSaver *self);
void                tny_mime_part_saver_set_save_strategy
                                                        (TnyMimePartSaver *self,
                                                         TnyMimePartSaveStrategy *strategy);
void                tny_mime_part_saver_save            (TnyMimePartSaver *self,
                                                         TnyMimePart *part);

Object Hierarchy


  GInterface
   +----TnyMimePartSaver

Description

A type that can save a TnyMimePart

Details

TnyMimePartSaver

typedef struct _TnyMimePartSaver TnyMimePartSaver;


TnyMimePartSaverIface

typedef struct {
	GTypeInterface parent;

	TnyMimePartSaveStrategy* (*get_save_strategy_func) (TnyMimePartSaver *self);
	void (*set_save_strategy_func) (TnyMimePartSaver *self, TnyMimePartSaveStrategy *strategy);
	void (*save_func) (TnyMimePartSaver *self, TnyMimePart *part);	
} TnyMimePartSaverIface;


tny_mime_part_saver_get_save_strategy ()

TnyMimePartSaveStrategy* tny_mime_part_saver_get_save_strategy
                                                        (TnyMimePartSaver *self);

Get the strategy for saving mime-parts. The return value must be unreferenced after use.

Example:

static void 
tny_my_msg_view_on_save_clicked (TnyMimePartSaver *self, TnyMimePart *attachment)
{
    TnyMimePartSaveStrategy *strategy = tny_mime_part_saver_get_save_strategy (self);
    tny_save_strategy_save (strategy, attachment);
    g_object_unref (G_OBJECT (strategy));
}

Implementors: This method must return the strategy for saving a mime-part. being the implementer, you must add a reference before returning the instance.

Example:

static *TnyMimePartSaveStrategy
tny_my_msg_view_get_save_strategy (TnyMimePartSaver *self_i)
{
     TnyMyMsgView *self = TNY_MY_MSG_VIEW (self_i);
     return TNY_MIME_PART_SAVE_STRATEGY (g_object_ref (self->mime_part_save_strategy));
}

For more information take a look at tny_mime_part_save_strategy_perform_save of TnyMimePartSaveStrategy.

self : A TnyMsgView instance
Returns : the TnyMimePartSaveStrategy for self

tny_mime_part_saver_set_save_strategy ()

void                tny_mime_part_saver_set_save_strategy
                                                        (TnyMimePartSaver *self,
                                                         TnyMimePartSaveStrategy *strategy);

Set the strategy for saving mime-parts

Implementors: This method must set (store) the strategy for saving a mime-part.

Example:

static void 
tny_my_msg_view_set_save_strategy (TnyMimePartSaver *self_i, TnyMimePartSaveStrategy *strat)
{
     TnyMyMsgView *self = TNY_MY_MSG_VIEW (self_i);
     if (self->save_strategy)
           g_object_unref (G_OBJECT (self->save_strategy));
     self->save_strategy = g_object_ref (G_OBJECT (strat));
}
static void
tny_my_msg_view_finalize (TnyMyMsgView *self)
{
     if (self->save_strategy))
         g_object_unref (G_OBJECT (self->save_strategy));
}

The idea is that devices can have a specific such strategy. For example a strategy that sends it to another computer or a strategy that saves it to a flash disk. However. In the message view component, you don't care about that. You only care about the API of the save-strategy interface.

For more information take a look at tny_mime_part_save_strategy_perform_save of TnyMimePartSaveStrategy.

self : A TnyMimePartSaver instance
strategy : A TnyMimePartSaveStrategy instace

tny_mime_part_saver_save ()

void                tny_mime_part_saver_save            (TnyMimePartSaver *self,
                                                         TnyMimePart *part);

Saves mime_part using the save strategy

self : A TnyMimePartSaver instance
part : A TnyMimePart instace

See Also

TnyMsgView, TnyMimePartView