Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / dmclock / sim / src / test_ssched.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 /*
5  * Copyright (C) 2016 Red Hat Inc.
6  */
7
8
9 #include "ssched_server.h"
10 #include "ssched_client.h"
11
12 #include "sim_recs.h"
13 #include "sim_server.h"
14 #include "sim_client.h"
15
16 #include "simulate.h"
17
18
19 namespace crimson {
20   namespace test_simple_scheduler {
21
22     namespace ssched = crimson::simple_scheduler;
23     namespace sim = crimson::qos_simulation;
24
25     using Time = double;
26
27     struct SimpleAccum {
28       uint32_t request_count = 0;
29     };
30
31     using SimpleQueue = ssched::SimpleQueue<ClientId,sim::TestRequest,Time>;
32
33     using SimpleServer = sim::SimulatedServer<SimpleQueue,
34                                               ssched::ReqParams,
35                                               ssched::NullData,
36                                               SimpleAccum>;
37     using SimpleClient = sim::SimulatedClient<ssched::ServiceTracker<ServerId>,
38                                               ssched::ReqParams,
39                                               ssched::NullData,
40                                               SimpleAccum>;
41
42     using CreateQueueF =
43       std::function<SimpleQueue*(SimpleQueue::CanHandleRequestFunc,
44                                  SimpleQueue::HandleRequestFunc)>;
45
46
47     using MySim = sim::Simulation<ServerId,ClientId,SimpleServer,SimpleClient>;
48   
49     using SubmitFunc = SimpleClient::SubmitFunc;
50
51     extern void simple_server_accumulate_f(SimpleAccum& a,
52                                            const ssched::NullData& add_info);
53
54     extern void simple_client_accumulate_f(SimpleAccum& a,
55                                            const ssched::NullData& ignore);
56   } // namespace test_simple
57 } // namespace crimson