• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# DreamMessage类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中DreamMessage的典型用法代码示例。如果您正苦于以下问题:C# DreamMessage类的具体用法?C# DreamMessage怎么用?C# DreamMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DreamMessage类属于命名空间,在下文中一共展示了DreamMessage类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: GetFileHandler

        public Yield GetFileHandler(DreamContext context, DreamMessage request, Result<DreamMessage> response)
        {
            string suffixPath = string.Join("" + Path.DirectorySeparatorChar, context.GetSuffixes(UriPathFormat.Decoded));
            string filename = Path.Combine(_path, suffixPath);
            if(Directory.Exists(filename)) {
                XDoc ret = new XDoc("files");
                string pattern = context.GetParam("pattern", "");
                AddDirectories(new DirectoryInfo(filename), pattern, ret);
                AddFiles(new DirectoryInfo(filename), pattern, ret);
                response.Return(DreamMessage.Ok(ret));
                yield break;
            }

            DreamMessage message;
            try {
                message = DreamMessage.FromFile(filename, StringUtil.EqualsInvariant(context.Verb, "HEAD"));
            } catch(FileNotFoundException) {
                message = DreamMessage.NotFound("file not found");
            } catch(Exception) {
                message = DreamMessage.BadRequest("invalid path");
            }

            // open file and stream it to the requester
            response.Return(message);
        }
开发者ID:maximmass,项目名称:DReAM,代码行数:25,代码来源:MountService.cs


示例2: DeleteRecord

 public Yield DeleteRecord(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     string name = context.GetSuffix(0, UriPathFormat.Normalized);
     DeleteRecord(name);
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:sdether,项目名称:DReAM,代码行数:7,代码来源:directoryservice.cs


示例3: GetEntries

 public Yield GetEntries(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     XAtomFeed feed = _feed;
     if(feed != null) {
         response.Return(DreamMessage.Ok(MimeType.ATOM, _feed));
     } else {
         throw new DreamBadRequestException("not initialized");
     }
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:10,代码来源:atomservice.cs


示例4: GetAllRecords

 public Yield GetAllRecords(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     XDoc result = new XDoc("list");
     lock(_directory) {
         foreach(KeyValuePair<string, DirectoryRecord> entry in _directory) {
             result.Add(entry.Value.ToXDoc());
         }
     }
     response.Return(DreamMessage.Ok(result));
     yield break;
 }
开发者ID:sdether,项目名称:DReAM,代码行数:11,代码来源:directoryservice.cs


示例5: DeleteQueue

 internal Yield DeleteQueue(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     var name = context.GetParam("queuename");
     lock(_queues) {
         ITransactionalQueue<XDoc> queue;
         if(_queues.TryGetValue(name, out queue)) {
             queue.Dispose();
             Directory.Delete(Path.Combine(_rootPath, name),true);
             _queues.Remove(name);
         }
     }
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:14,代码来源:QueueService.cs


示例6: Can_clone_a_memory_stream_message

 public void Can_clone_a_memory_stream_message()
 {
     var text = "blah";
     var stream = new MemoryStream();
     var writer = new StreamWriter(stream);
     writer.Write(text);
     writer.Flush();
     stream.Position = 0;
     var m = new DreamMessage(DreamStatus.Ok, new DreamHeaders().Add("foo", "bar"), MimeType.TEXT, stream.Length, stream);
     m.Headers.Add("baz", "blah");
     _log.Debug("about to clone");
     var m2 = m.Clone();
     var reader = new StreamReader(m2.ToStream());
     Assert.AreEqual(text, reader.ReadToEnd());
     Assert.AreEqual(m.ContentType.ToString(), m2.ContentType.ToString());
     Assert.AreEqual(m.Headers["foo"], m2.Headers["foo"]);
     Assert.AreEqual(m.Headers["baz"], m2.Headers["baz"]);
 }
开发者ID:sdether,项目名称:DReAM,代码行数:18,代码来源:DreamMessageTests.cs


示例7: GetEntry

        public Yield GetEntry(DreamContext context, DreamMessage request, Result<DreamMessage> response)
        {
            string id = context.GetParam("id");
            XAtomEntry entry = null;

            // get feed
            XAtomFeed feed = _feed;
            if(feed != null) {
                lock(feed) {
                    entry = new XAtomEntry(feed[string.Format("entry[id='{0}']", Self.At(id).Uri)]);
                }
            } else {
                throw new DreamBadRequestException("not initialized");
            }
            if(entry.IsEmpty) {
                response.Return(DreamMessage.NotFound("entry not found"));
            } else {
                response.Return(DreamMessage.Ok(MimeType.ATOM, entry));
            }
            yield break;
        }
开发者ID:maximmass,项目名称:DReAM,代码行数:21,代码来源:atomservice.cs


示例8: CreateSubscriptionSet

        internal Yield CreateSubscriptionSet(DreamContext context, DreamMessage request, Result<DreamMessage> response)
        {
            XDoc subscriptionSet = request.ToDocument();
            Tuplet<PubSubSubscriptionSet, bool> set = _dispatcher.RegisterSet(subscriptionSet);
            XUri locationUri = Self.At("subscribers", set.Item1.Location).Uri.AsPublicUri();
            DreamMessage msg = null;
            if(set.Item2) {

                // existing subs cause a Conflict with ContentLocation of the sub
                msg = DreamMessage.Conflict("The specified owner already has a registered subscription set");
                msg.Headers.ContentLocation = locationUri;
            } else {

                // new subs cause a Created with Location of the sub, plus XDoc containing the location
                XDoc responseDoc = new XDoc("subscription-set")
                    .Elem("uri.location", locationUri)
                    .Elem("access-key", set.Item1.AccessKey);
                msg = DreamMessage.Created(locationUri, responseDoc);
                msg.Headers.Location = locationUri.With("access-key", set.Item1.AccessKey);
            }
            response.Return(msg);
            yield break;
        }
开发者ID:yurigorokhov,项目名称:DReAM,代码行数:23,代码来源:PubSubService.cs


示例9: DetermineAccess

 public override DreamAccess DetermineAccess(DreamContext context, DreamMessage request)
 {
     if(context.Feature.Signature.StartsWith("subscribers/")) {
         var location = context.GetParam("location", null);
         var set = _dispatcher[location];
         if(set != null) {
             var accessKey = context.GetParam("access-key", null);
             if(string.IsNullOrEmpty(accessKey)) {
                 var cookie = DreamCookie.GetCookie(request.Cookies, "access-key");
                 if(cookie != null) {
                     accessKey = cookie.Value;
                 }
             }
             if(set.AccessKey.EqualsInvariant(accessKey)) {
                 return DreamAccess.Private;
             }
             _log.DebugFormat("no matching access-key in query or cookie for location '{0}'", location);
         } else {
             _log.DebugFormat("no subscription set for location '{0}'", location);
         }
     }
     return base.DetermineAccess(context, request);
 }
开发者ID:sdether,项目名称:DReAM,代码行数:23,代码来源:PubSubService.cs


示例10: convert

        public Yield convert(DreamContext context, DreamMessage request, Result<DreamMessage> response)
        {
            string methodStr = context.GetParam("method", string.Empty);
            string aliasStr = context.GetParam("id", string.Empty);

            XUri secPage = new XUri( context.ServerUri ).At( "deki", "pages", "=Convert:" + methodStr );
            Plug _dekiSec = Plug.New( secPage );
            XDoc secDoc = _dekiSec.Get().ToDocument();

            string userURL = secDoc["user.author/@href"].AsInnerText;
            Plug _dekiUser = Plug.New( userURL );
            XDoc userDoc = _dekiUser.Get().ToDocument();
            string perms = userDoc["permissions.user"]["operations"].AsInnerText;
            if ( !perms.Contains("UNSAFECONTENT") ) {
                response.Return( DreamMessage.Forbidden("UNSAFECONTENT not enabled") );
                yield break;
            }

            XUri codePage = new XUri( context.ServerUri ).At( "deki","pages", "=Convert:" + methodStr,"contents");
            Plug _deki = Plug.New( codePage, new TimeSpan(0,0,15) );
            string bodyText = _deki.With("format", "xhtml").Get().ToDocument()["body"]["pre"].Contents;

            for ( int i = 0; i < toHTML.GetLength(0); i++ ) {
                bodyText = Regex.Replace( bodyText, toHTML[i,0], toHTML[i,1] );
            }
            //string codeStr = HttpUtility.HtmlDecode( bodyText );
            //XDoc doc = XDocFactory.From( codeStr, MimeType.ANY );
            //response.Return( DreamMessage.Ok( MimeType.TEXT, bodyText ) );

            Assembly scriptCode = CompileCode( bodyText, response );
            if ( scriptCode != null ) {
                XmlDocument outDoc = runScript( scriptCode, aliasStr );
                response.Return( DreamMessage.Ok( MimeType.XML, new XDoc(outDoc) ) );
            }
            yield break;
        }
开发者ID:kellrott,项目名称:ConvertPort,代码行数:36,代码来源:ConvertPort.cs


示例11: CheckPrologue

 public Yield CheckPrologue(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     _log.DebugFormat("checking prologue data in Env #{0}", TaskEnv.Current.GetHashCode());
     if(string.IsNullOrEmpty(PrologueData)) {
         throw new Exception("no prologue data in slot");
     }
     if(PrologueData != context.GetState<string>("prologue")) {
         throw new Exception("state from prologue didn't make it to feature");
     }
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:12,代码来源:DreamContextTests.cs


示例12: CheckEpilogue

 public Yield CheckEpilogue(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     EpilogueData = StringUtil.CreateAlphaNumericKey(8);
     _log.DebugFormat("setting epilogue data in Env #{0}", TaskEnv.Current.GetHashCode());
     context.SetState("epilogue", EpilogueData);
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:8,代码来源:DreamContextTests.cs


示例13: TestCreateTtlExpire

        public Yield TestCreateTtlExpire(DreamContext context, DreamMessage request, Result<DreamMessage> response)
        {
            // add a file
            Storage.AtPath(TEST_FILE_URI).With("ttl", "2").Put(DreamMessage.Ok(MimeType.TEXT, TEST_CONTENTS));
            _log.DebugFormat("File stored at: {0}", DateTime.UtcNow);

            // get file and compare contents
            string contents = Storage.AtPath(TEST_FILE_URI).Get().ToText();
            Assert.AreEqual(TEST_CONTENTS, contents);
            _log.DebugFormat("check file at: {0}", DateTime.UtcNow);
            System.Threading.Thread.Sleep(TimeSpan.FromSeconds(4));

            // get file and compare contents
            _log.DebugFormat("Checking for expired file at: {0}", DateTime.UtcNow);
            DreamMessage getResponse = Storage.AtPath(TEST_FILE_URI).GetAsync().Wait();
            Assert.AreEqual(DreamStatus.NotFound, getResponse.Status);

            response.Return(DreamMessage.Ok());
            yield break;
        }
开发者ID:sdether,项目名称:DReAM,代码行数:20,代码来源:PrivateStorageTests.cs


示例14: TestCreateRetrieveDelete

            public Yield TestCreateRetrieveDelete(DreamContext context, DreamMessage request, Result<DreamMessage> response)
            {
                string filename = Path.GetTempFileName();
                using(Stream s = File.OpenWrite(filename)) {
                    byte[] data = Encoding.UTF8.GetBytes(TEST_CONTENTS);
                    s.Write(data, 0, data.Length);
                }
                _log.Debug("created file");

                // add a file
                _log.DebugFormat("storage path: {0}", Storage.Uri);
                Storage.AtPath(TEST_FILE_URI).Put(DreamMessage.FromFile(filename, false));
                File.Delete(filename);
                _log.Debug("put file");

                // get file and compare contents
                string contents = Storage.AtPath(TEST_FILE_URI).Get().ToText();
                Assert.AreEqual(TEST_CONTENTS, contents);
                _log.Debug("got file");

                // delete file
                Storage.AtPath(TEST_FILE_URI).Delete();
                _log.Debug("deleted file");
                response.Return(DreamMessage.Ok());
                yield break;
            }
开发者ID:maximmass,项目名称:DReAM,代码行数:26,代码来源:StorageTests.cs


示例15: Prologue

 private Yield Prologue(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     _log.Debug("in prologue");
     if("disposal".EqualsInvariant(context.Feature.Signature) && context.IsTaskEnvDisposed) {
         throw new Exception("context disposed in prologue");
     }
     PrologueData = StringUtil.CreateAlphaNumericKey(8);
     _log.DebugFormat("setting prologue data in Env #{0}", TaskEnv.Current.GetHashCode());
     context.SetState("prologue", PrologueData);
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:12,代码来源:DreamContextTests.cs


示例16: Spawn

 public Yield Spawn(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     var guid = Guid.NewGuid();
     ContextVar = new ContextLifeSpan(guid);
     context.SetState(guid);
     context.SetState(ContextVar);
     ContextLifeSpan capturedInner = null;
     yield return Async.Fork(() =>
     {
         var innerContextVar = DreamContext.Current.GetState<ContextLifeSpan>();
         capturedInner = innerContextVar;
         if(innerContextVar == ContextVar) {
             throw new Exception("spawned context instances were same");
         }
         if(innerContextVar.Guid != guid) {
             throw new Exception("spawned context guid is wrong");
         }
         if(innerContextVar.IsDisposed) {
             throw new Exception("subcall: context is disposed");
         }
     }, new Result());
     var contextVar = context.GetState<ContextLifeSpan>();
     if(contextVar == null) {
         throw new Exception("context instance is gone");
     }
     if(capturedInner == contextVar) {
         throw new Exception("outer instance was changed to inner");
     }
     if(!capturedInner.IsDisposed) {
         throw new Exception("inner instance wasn't disposed after closure completion");
     }
     if(contextVar.Guid != guid) {
         throw new Exception("context guid is wrong");
     }
     if(contextVar != ContextVar) {
         throw new Exception("context instance changed");
     }
     if(contextVar.IsDisposed) {
         throw new Exception("context is disposed");
     }
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:43,代码来源:DreamContextTests.cs


示例17: Ping

 public Yield Ping(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     var guid = Guid.NewGuid();
     ContextVar = new ContextLifeSpan(guid);
     context.SetState(ContextVar);
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:8,代码来源:DreamContextTests.cs


示例18: Disposal

 public Yield Disposal(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     if(context.IsTaskEnvDisposed) {
         throw new Exception("context disposed in feature");
     }
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:8,代码来源:DreamContextTests.cs


示例19: Exception

 public Yield Exception(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     _log.Debug("in exception feature");
     var guid = Guid.NewGuid();
     ContextVar = new ContextLifeSpan(guid);
     context.SetState(ContextVar);
     throw new CustomException();
 }
开发者ID:maximmass,项目名称:DReAM,代码行数:8,代码来源:DreamContextTests.cs


示例20: Internal

 internal Yield Internal(DreamContext context, DreamMessage request, Result<DreamMessage> response)
 {
     response.Return(DreamMessage.Ok());
     yield break;
 }
开发者ID:nataren,项目名称:DReAM,代码行数:5,代码来源:ServiceInheritanceTests.cs



注:本文中的DreamMessage类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# DriveService类代码示例发布时间:2022-05-24
下一篇:
C# DreamContext类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap