using System;
using System.Collections;
using System.Text;
using System.Threading;
using sscs.verbs;
using sscs.common;


    namespace sscs.verbs 
    {

     /*
     * Defines the interfaces to be implemenetd by all Secret Store Verbs. 
     */
    interface SSVerb
    {
        /* Takes in the raw bytes and sets them for a Verb, 
         * so that the verb will execute in the bytes given.
         * TBD: In case we are able to send the byte[] through constructor, 
         * we can avoid this interface.    
         */

        void SetMessageContent(byte[] rawbytes); 
         
        /* Takes in the SecretStore Reeference and returns the correct SSVerb
         */
        byte[] ProcessRequest(UserIdentifier userId);

        //Gives the name of operation performed.Can be used in case of error. 
        string GetVerbName();
    }
    
    }