标签: stream

类的自定义流操纵器

我正在尝试编写一个简单的审计类,它通过运算符 << 获取输入,并在接收到这样的自定义操纵器后编写审计:

class CAudit
{
public:
    //needs to be templated
    CAudit& operator << ( LPCSTR data ) {
        audittext << data;
        return *this;
    }

    //attempted manipulator
    static CAudit& write(CAudit& audit) { 
        //write contents of audittext to audit and clear it
        return audit; 
    }

private:
    std::stringstream audittext;
};

//to be used like
CAudit audit;
audit << "Data " << data << " received at " << time << CAudit::write;
Run Code Online (Sandbox Code Playgroud)

我认识到代码中的重载运算符不返回流对象,但想知道是否仍然可以使用类似语法的操纵器。目前,编译器将 '<<' 视为二元右移运算符。

感谢您的任何意见,帕特里克

c++ stream manipulators

0
推荐指数
1
解决办法
2535
查看次数

从Sitecore文件项获取流?(C#)

我的一个项目上有一个文件字段.我正在尝试在上传页面上实现我的功能,其工作方式如下:

<input type="file" id="UpdateFile" runat="server" />
Run Code Online (Sandbox Code Playgroud)
var file = UpdateFile.PostedFile;
Stream stream = file.InputStream;
StreamReader streamReader = new StreamReader(stream);
var helper = new VarietySelectorDataHelper("master");
var csv = new CsvReader(streamReader);
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用Sitecore文件字段完成此操作.这是我到目前为止:

var importFile = glassItem.CSV;
var fileItem = _db.GetItem(importFile.Id.ToString()); // get the Item from the media library
var media = MediaManager.GetMedia(fileItem);
var stream = media.GetStream();
StreamReader streamReader = new StreamReader(stream);
Run Code Online (Sandbox Code Playgroud)

但是,我无法将MediaStream传递给StreamReader,这是错误的类型.我不确定我是否应该将该项目作为Media对象.

c# media file sitecore stream

0
推荐指数
1
解决办法
827
查看次数

更简洁的方式来定义Scala Stream对象?

我有以下内容:

val notDivisibleBy2: Stream[Long] = 3L #:: 5L #:: notDivisibleBy2.tail.map(_ + 2)
println(notDivisibleBy2.take(3))
Run Code Online (Sandbox Code Playgroud)

如果5L删除,StackOverflow则发出a.有没有办法让尾部计算工作,所以5L不必指定?

scala stream

0
推荐指数
1
解决办法
30
查看次数

为什么istringstream在流的末尾附加'-1'字符?

我注意到当我使用istringstream时eof()即使整个字符串被"消耗"也不会返回true.例如:

char ch;
istringstream ss{ "0" };
ss >> ch;
cout << ss.peek() << " " << (ss.eof() ? "true" : "false");
Run Code Online (Sandbox Code Playgroud)

输出(VS2015):

-1 false
Run Code Online (Sandbox Code Playgroud)

c++ stream char visual-c++ istringstream

0
推荐指数
1
解决办法
95
查看次数

在Scala中转换为For Comprehension

测试这个我可以看到它的工作原理:

def twoHtmlFutures = Action { request =>

  val async1 = as1.index(embed = true)(request) // Future[Result]
  val async2 = as2.index(embed = true)(request) // Future[Result]

  val async1Html = async1.flatMap(x => Pagelet.readBody(x)) // Future[Html]
  val async2Html = async2.flatMap(x => Pagelet.readBody(x)) // Future[Html]

  val source1 = Source.fromFuture(async1Html) // Source[Html, NotUsed]
  val source2 = Source.fromFuture(async2Html) // Source[Html, NotUsed]

  val merged = source1.merge(source2) // Source[Html, NotUsed]
  Ok.chunked(merged)
}
Run Code Online (Sandbox Code Playgroud)

但试图将其纳入For Comprehension并不适合我.这是我试过的:

def twoHtmlFutures2 = Action.async { request =>

  val async1 = as1.index(embed = true)(request) …
Run Code Online (Sandbox Code Playgroud)

scala future stream akka for-comprehension

0
推荐指数
1
解决办法
536
查看次数

如何使用StreamChannel在Dart中进行双向通信?

有没有办法让Dart Streams await stream.first连续多次执行某些操作 ,使用有点像堆栈/队列的流?

据我所知,你可以通过在现有的Single-substription流上使用asBroadcastStream来做到这一点,但我觉得这并不理想.

也许有一种缓冲原语与一些Rx包或类似的东西?

我的用例如下:

我有一个StreamChannel(IOWebSocketChannel),我想按特定顺序发送/接收消息.

即:

Send Message0
Receive Message1
Send Message2
Receive Message3
Run Code Online (Sandbox Code Playgroud)

我肯定知道Message1服务器收到后才会到达Message0 (等的Message2Message3)

stream dart

0
推荐指数
1
解决办法
121
查看次数

使用rxDart合并Firestore流

我试图使用RxDart将Firestore中的两个流合并到一个流中,但它只返回一个流的结果

Stream getData() {
    Stream stream1 = Firestore.instance.collection('test').where('type', isEqualTo: 'type1').snapshots();
    Stream stream2 = Firestore.instance.collection('test').where('type', isEqualTo: 'type2').snapshots();
    return Observable.merge(([stream2, stream1]));
}
Run Code Online (Sandbox Code Playgroud)

stream dart firebase flutter rxdart

0
推荐指数
1
解决办法
1018
查看次数

通过集合进行迭代期间发生ConcurrentModificationException

我正在spring-batch应用程序的ItemProcessor中遍历一个列表,但出现此错误:

java.util.ConcurrentModificationException: null
Run Code Online (Sandbox Code Playgroud)

当我将批处理配置设置为使用单个线程时,它可以正常工作。我正在使用SimpleAsyncTaskExecutor。客户是一个实体,并且具有客户别名列表。

private void fillCustomer(final Customer customer, final ExtractLine result){

CustomerAlias customerAlias = customer.getCustomerAlias().stream().filter(s -> s.getAliasType().isAster()).findFirst().orElse(nullAlias);
result.setCustomer(customerAlias.getCalNmeAliasName());
}


java.util.ConcurrentModificationException: null
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at org.hibernate.collection.internal.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:815)
at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
at com.liq.sub.impl.MyProcessor.fillCustomer(MyProcessor.java:107)
Run Code Online (Sandbox Code Playgroud)

java stream spring-batch concurrentmodification

0
推荐指数
1
解决办法
71
查看次数

如何实现生成自然数1,3,5,7 ...的函数?

如何实现生成无限奇数自然数1,3,5,7 ...的函数?

我的尝试是:

def oddNats: Stream[Int] = {
  def loop(a: Int, b: Int): Stream[Int] =
  cons(a, loop(b, a + 2))
  loop(0, 1)
}
Run Code Online (Sandbox Code Playgroud)

它一定是def oddNats: Stream[Int] = ???

scala stream

0
推荐指数
1
解决办法
58
查看次数

如何将带有矢量或其他标准库容器的对象保存到C ++中的二进制文件?

像这样的对象:

#include <vector>
using namespace std;
class A
{
public:
    vector<int> i;
    //save other variable
};

void save(const A & a)
{
    //dosomething
}

int main()
{
    A a;
    save(a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何将其保存到二进制文件?换句话说,如何编写保存功能?

c++ binary fstream stream c++11

0
推荐指数
1
解决办法
61
查看次数