public bool write(CowPipelineData data, DateTime indexTime)
 {
     bool ret = false;
     using (var reader = new StreamReader(data.Data))
     {
         // TODO: create a SQL clustered index on timestamp to retrieve events in inverted time series.
         var bucketId = Guid.NewGuid().ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Year.ToString();
         using (var writer = new StreamWriter(bucketId, true, Encoding.UTF8))
         {
             string line;
             while ((line = reader.ReadLine()) != null)
             {
                 writer.WriteLine(string.Format("host = {0}, source = {1}, sourcetype = {2}, index = {3}, _time = {4}, _raw = {5}",
                     data.Host,
                     data.Source,
                     data.SourceType,
                     data.Index,
                     data.Time,
                     line));
             }
         }
     }
     ret = true;
     return ret;
 }
 public virtual bool Execute(CowPipelineData data)
 {
     bool ret = false;
     var processor = new IndexProcessor();
     if (processor != null)
         ret = processor.write(data, data.Time);
     return ret;
 }
 public virtual CowPipelineData CreateInputPipelineData()
 {
     var source = ConfigurationManager.AppSettings["InputFile"];
     var fs = new FileStream(source, FileMode.Open);
     {
         var cpd = new CowPipelineData();
         cpd.Data = fs;
         cpd.Time = DateTime.Now;
         cpd.Source = source;
         cpd.Index = "default";
         cpd.Host = Dns.GetHostName();
         cpd.SourceType = "file";
         return cpd;
     }
 }